运行以下代码时,将打印 C:\Test 下面所有文件的文件名。为什么它不只打印Hello
(n 次,取决于处理了多少文件)?
这是否意味着我不能依靠shift
可靠地分配给$_
?想象一下,一个同事实现了这个wtf
函数,但不知道它是从一个File::Find
想要的sub 调用的。我用 Strawberry Perl 5.12 运行这段代码
编辑:此代码也没有按预期运行:
use strict;
use warnings;
wanted();
sub wanted{
wtf("Hello");
}
sub wtf {
shift;
print; #expecting Hello
}
所以我想我在这里完全不在高速公路上。这显然与 File::Find 无关,我现在正在为这个问题寻找一个新标题。这是我的原始代码:
use strict;
use warnings;
use File::Find;
find(\&wanted, "C:\\test");
sub wanted{
wtf("Hello");
}
sub wtf {
shift;
print; #expecting Hello
}