Perl中接下来的两行之间有什么区别:
PopupMsg("Hello");
&PopupMsg("Hello");
...
sub PopupMsg
{
subroutines code here...
}
请注意,在某些情况下,我必须使用第一行,而在某些情况下,第二行,否则我会收到错误。
答案 0 :(得分:5)
使用和号&
调用子程序是不好的做法。只要您使用括号或将符号预先声明为子例程名称,调用就可以正常编译。
当您将子例程作为数据项处理时,必须使用&符号,例如对其进行引用。
my $sub = \&PopupMsg;
答案 1 :(得分:2)
请参阅http://perldoc.perl.org/perlsub.html:
NAME(LIST); # & is optional with parentheses.
NAME LIST; # Parentheses optional if predeclared/imported.
&NAME(LIST); # Circumvent prototypes.
&NAME; # Makes current @_ visible to called subroutine.