我有一些简单的Perl代码:
#!/usr/bin/perl
use strict; # not in the OP, recommended
use warnings; # not in the OP, recommended
my $val = 1;
for ( 1 .. 100 ) {
$val = ($val * $val + 1) % 8051;
print ($val / 8050) . " \n";
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,输出是:
bash-3.2$ perl ./rand.pl
0.0002484472049689440.000621118012422360.003229813664596270.08409937888198760.92
... <snipped for brevity> ...
2919250.9284472049689440.3526708074534160.1081987577639750.2295652173913040.1839
751552795030.433540372670807bash-3.2$
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?
Sin*_*nür 18
C:\>
perldoc -f print
:
另外注意不要使用左括号跟随print关键字,除非你想要相应的右括号来终止print的参数 - 插入一个+或在所有参数周围加上括号.
因此,您需要的是:
print( ($val / 8050) . "\n" );
Run Code Online (Sandbox Code Playgroud)
要么
print +($val / 8050) . "\n";
Run Code Online (Sandbox Code Playgroud)
您打印的语句结果$val / 8050
然后连接"\n"
到返回值,print
然后丢弃结果值.
顺便说一下,如果你:
use warnings;
Run Code Online (Sandbox Code Playgroud)
然后perl
会告诉你:
print (...) interpreted as function at t.pl line 5. Useless use of concatenation (.) or string in void context at t.pl line 5.
归档时间: |
|
查看次数: |
466 次 |
最近记录: |