子程序后面跟小括号

子程序后面跟小括号



[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl -w
sub foo() {
}
foo('test');

运行时提示:
Too many arguments for main::foo at ./goo line 6, near "'test')"
Execution of ./goo aborted due to compilation errors.

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl -w
sub foo {
}
foo('test');

运行就正常
你的 sub foo()  定义了foo没有参数。()是foo的原型,表示没有参数。
比如:
foo +2; # 表示 foo() + 2 ; er而不是 foo(+2)
具体请看 perldoc perlsub

谢谢
看大骆驼