产生perl的Primes

Про*_*ист 1 perl primes

我正在尝试生成随机素数

print Math::Prime::Util->random_strong_prime(128);
Run Code Online (Sandbox Code Playgroud)

但是,当我调用Math :: Prime :: Util的方法之一(我尝试各种方法)时,我得到:

Parameter 'Math::Prime::Util' must be a positive integer at /home/ivan/perl5/lib/perl5/x86_64-linux-thread-multi/Math/Prime/Util.pm line 400.

我不能错过什么是错的,128是正整数.脚本在Starman服务器下运行(psgi)

Sin*_*nür 6

当您使用方法调用语法时,即,

Math::Prime::Util->random_strong_prime(128);
Run Code Online (Sandbox Code Playgroud)

第一个参数random_strong_prime成为"Math::Prime::Util"不是正整数的字符串.使用方法调用语法,128成为第二个参数.

您使用的语法适用于调用类方法.

相反,您想要使用函数调用语法:

print Math::Prime::Util::random_strong_prime(128);
Run Code Online (Sandbox Code Playgroud)

您可以使用以下简单程序验证这一点:

#!/usr/bin/env perl

package Hello;

sub f { print "@_\n" }

package main;

Hello->f('world');
Hello::f('world');
Run Code Online (Sandbox Code Playgroud)
$ ./gg.pl
Hello world
world