【发布时间】:2013-10-21 14:20:38
【问题描述】:
我正在审查我们使用的 Perl 工具的提议的供应商提供的补丁,我正在努力确定特定类型更改的原因 - 将“@”前置到传递给子例程的参数.
例如,一行是:
my ($genfd) = @_;
现在:
my ($genfd) = @@_;
我不是 Perl 开发人员,我正在这里学习,但到目前为止,我 understand that '@_' 是提供给封闭子例程的参数。
I also understand 上面的赋值('$genfd' 被包裹在左侧的括号中)将'@_' 转换为一个列表,然后将'genfd' 标量变量分配给该列表的第一个元素列表。这应该导致子例程的第一个参数存储在“genfd”中。
我完全坚持的是第二个'@'有什么不同。我有found examples of this usage on GitHub,但从来没有解释过,也找不到关于任何 Perl 引用或 SO 的解释。任何帮助将不胜感激。
【问题讨论】: