При выполнении следующего кода печатаются имена всех файлов ниже C:\Test. Почему он не печатает только Hello
(n раз, в зависимости от того, сколько файлов обрабатывается)?
Означает ли это, что я не могу полагаться на shift
для надежного назначения $_
? Представьте, что коллега реализует функцию wtf
и не знает, что она вызывается из File::Find
требуемой подпрограммы. Я запускаю этот код с 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
}