在Mac OSX上,这适用于perl
perl -v
This is perl, v5.8.9 built for darwin-2level
perl -e 'sub test {}'
但是在Solaris上
perl -v
This is perl, v5.8.8 built for i86pc-solaris-thread-multi
perl -e 'sub test {}'
Illegal declaration of anonymous subroutine at -e line 1.
有什么想法吗?
谢谢, 凯利
答案 0 :(得分:3)
这很可能是两个版本的Perl之间的行为差异。它也可能只是5.8.8中CLI评估模式的一个错误
尝试此测试以查看它是仅仅是CLI评估还是Perl本身:
use strict;
sub test {}
如果它在文件中传递严格模式,那么它可能会达到它的最佳状态。
答案 1 :(得分:1)
- 非法声明匿名子程序
(F)使用sub关键字构造匿名子例程时 您必须始终指定一个代码块。请参阅perlsub
它可能位于sitecustomize.pl
文件中。它不看到“测试”。它正在读作'sub'
。尝试在命令行上键入perl -e 'test {}'
。
另外,要取出自定义文件,可以将-f
开关添加到命令行。 `perl -fe'sub test {}'
perldoc perlrun
了解更多信息。