2015-05-05 39 views
1

我試圖生成隨機素數素數生成的perl

print Math::Prime::Util->random_strong_prime(128); 

但是,當我打電話的方法之一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是正數和整數。 腳本下星人服務器(PSGI)

回答

6

當使用the method invocation syntax,即運行時,

Math::Prime::Util->random_strong_prime(128); 

的第一個參數random_strong_prime成爲串"Math::Prime::Util"這不是一個正整數。使用方法調用語法,128變爲第二個參數。

您使用的語法適用於調用類方法。

相反,你要使用函數調用語法:

print Math::Prime::Util::random_strong_prime(128); 

您可以驗證這一點使用下面的程序:

#!/usr/bin/env perl 

package Hello; 

sub f { print "@_\n" } 

package main; 

Hello->f('world'); 
Hello::f('world'); 
$ ./gg.pl 
Hello world 
world
+1

感謝的答案,它確實有效。 –

+0

@Простопрограммист不客氣。 –