【发布时间】:2011-03-24 22:12:24
【问题描述】:
从 Perl 5.10 开始,现在可以对上下文变量 $_ 进行词法作用域,或者显式为 my $_; 或在 given / when 构造中。
有没有人发现 $_ 的好用法?它是否使任何构造更简单/更安全/更快?
如果情况变得更复杂怎么办?词汇$_ 是否在您的代码中引入了任何错误? (因为写入$_ 的控制结构将使用词法版本,如果它在范围内,如果它包含任何子例程调用(由于失去动态范围),这可以改变代码的行为)
最后,我想构建一个列表,阐明何时将$_ 用作词法、全局或什么时候根本不重要。
注意:截至perl5-5.24,这些实验性功能为no longer part of perl。
【问题讨论】:
-
我认为你的问题的答案大部分都包含在我的问题的答案中here。
-
@xenoterracide => 那里的答案肯定涵盖了词汇
$_的某些方面,但不是全部。这就是我想在这里介绍的内容。 -
我知道,但最好有一个开始的好地方;)
-
好问题。我会+1,但我的选票用完了。 :)
标签: perl global lexical perl5.10