根据下面的示例代码,有两种样式可以调用子例程:subname和subname().
#!C:\Perl\bin\perl.exe use strict; use warnings; use 5.010; &marine(); # style 1 &marine; # style 2 sub marine { state $n = 0; # private,persistent variable $n $n += 1; print "Hello,sailor number $n!\n"; }
哪一个,& marine();或者& marine;是更好的选择,如果在调用中没有参数?
解决方法
在
Learning Perl,这个例子来自于这个例子,我们正在开始显示你的子例程.我们只告诉你使用&所以你作为开始的Perler,不会遇到一个问题,你定义一个与Perl内置的同名的子例程,然后想知道为什么它不起作用. The&在前面总是调用你定义的子程序.开始的学生经常创建自己的子例程日志来打印一个消息,因为它们习惯于在他们使用的其他技术中这样做.在Perl中,这是内置的数学函数.
在习惯使用Perl之后,您就了解了Perl内置功能(通过perlfunc扫描),然后删除&有一些特殊的魔法与&你几乎不需要:
marine();
你可以离开()如果你已经预先声明了子例程,但我通常会离开(),甚至有一个空的参数列表.这是一个更强大的一个,因为你给Perl提示海洋是一个子程序名称.对我来说,我更快地认识到一个子程序.