Perl子例程括号中的美元字符是什么意思?
发布时间:2020-12-15 23:26:04 所属栏目:大数据 来源:网络整理
导读:我继承了一些Perl代码,偶尔我会看到如下定义的子程序: sub do_it($) { ...} 我找不到解释这个问题的文档.括号中的美元符号是什么意思? 解决方法 这是一个 subroutine prototype. 单个$表示sub只接受单个标量值,并使用标量上下文解释其他类型.例如,如果您将
我继承了一些Perl代码,偶尔我会看到如下定义的子程序:
sub do_it($) { ... } 我找不到解释这个问题的文档.括号中的美元符号是什么意思? 解决方法
这是一个
subroutine prototype.
单个$表示sub只接受单个标量值,并使用标量上下文解释其他类型.例如,如果您将数组作为参数传递,例如do_it(@array),Perl不会将@array扩展到列表中,而是将数组的长度传递给子例程体. 这有时很有用,因为Perl可以在错误地调用子例程时给出错误消息.此外,Perl的解释器可以使用原型来消除方法调用的歧义.我见过& symbol(用于代码块原型)非常巧妙地用于编写调用匿名代码的本机代码. 但是,它只适用于某些情况 – 例如它在OO Perl中不能很好地工作.因此它的使用有点不完整. Perl Best Practices建议不要使用它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |