可能重复:
我何时应该使用&来调用Perl子例程?
在perl脚本中,为什么调用函数的方法有时会被不同地编写.我看到&功能,有时候功能().它们是否相同,这只是一种人们想要炫耀的风格?如果它们是相同的,为什么它们都可用,是不是只需要一个?我猜这两种方法之间存在一些语义差异,这些方法将它们彼此区分开......但在什么样的情况下呢?
---由于我因超时原因无法回答我自己的问题 - 我正在更新问题部分的答案.当我有机会更新答案块时,我会把它放在那里.
我在"学习Perl"一书中找到了相关的文字.但感谢提示.第4章:子程序 - 省略&符号.
我对perl函数的&符号和用法更感兴趣.如果在调用之前已经定义了子例程,则可以在不调用函数的情况下调用子例程,同时调用类似于调用内置函数的函数.如果要调用的函数使用与内置函数之一相同的名称(如果在调用之前定义),则还用于区分内置函数和用户定义函数.
()的用法仅仅是为了证明将参数传递给子例程是合理的,而如果不使用,则默认的当前参数列表以@_的形式传递.如果在子程序的()中指定了参数,则假定它是一个子程序,即使先前在解析时没有定义,也会被调用.
我有一个小问题.我正在阅读一些代码,因为我的学校没有教我任何关于perl编程的有用信息,我在这里问你们.我看到这条线在一些perl程序中被大量使用:
$variable = &something();
Run Code Online (Sandbox Code Playgroud)
我不知道&这里的标志是什么意思,因为我从未在perl中说过.这something是一个子程序(我猜).它通常会说出一个名称,它有时也会像函数一样包含参数.有人能告诉我&这里代表什么,这something是什么时候.
变量接受某种返回值,然后用于检查某些条件,这使我认为它是一个子例程.但还是为什么&呢?
谢谢
perl ×2