【发布时间】:2009-10-28 23:11:23
【问题描述】:
我不认为以下应该有效,但确实有效:
$ perl -e '@a = qw/1222 2 3/; while (<@a>) { print $_ ."\n";}'
1222
2
3
$
据我所知,Perl 的 <> 运算符应该适用于文件句柄、glob 等,但文字 <>(而不是 <FILEHANDLE>)除外,它神奇地迭代了 @ARGV。
有谁知道它是否应该像我在测试中那样工作?
【问题讨论】:
-
来自 perlop(1) 关于 和 @ARGV:它是这样工作的:第一次评估 时,检查 @ARGV 数组,如果它为空,则 $ARGV[0 ] 设置为“-”,打开时为您提供标准输入。然后将@ARGV 数组作为文件名列表进行处理。我可以看到我的@a 发生了类似的事情,尽管似乎每个数组都不应该发生这种情况(而且我知道 foreach 或 map 是处理数组的更好方法)。我仍然想知道为什么不用钻研代码
标签: perl arrays diamond-operator