RTF*_*RTF 4 perl
我继承了一些Perl代码,偶尔我会看到如下定义的子程序:
sub do_it($) { ... }
我找不到解释这个问题的文档.括号中的美元符号是什么意思?
Nei*_*ter 7
这是一个子程序原型.
单一$意味着sub只接受单个标量值,并使用标量上下文解释其他类型.例如,如果您将数组作为参数传递,例如do_it(@array),Perl将不会扩展@array到列表中,而是将数组的长度传递给子例程主体.
$
do_it(@array)
@array
这有时很有用,因为Perl可以在错误地调用子例程时给出错误消息.此外,Perl的解释器可以使用原型来消除方法调用的歧义.我已经看到&符号(用于代码块原型)非常巧妙地编写了调用匿名代码的本机代码.
&
但是,它仅适用于某些情况 - 例如它在OO Perl中不能很好地工作.因此它的使用有点不完整.Perl Best Practices建议不要使用它们.
Seb*_*ian 6
它($)被称为子程序原型.
($)
有关更多信息,请参见PerlSub手册页:http://perldoc.perl.org/perlsub.html#Prototypes
原型现在并不常见.最佳实践不使用它.
归档时间:
9 年,10 月 前
查看次数:
561 次
最近记录: