另请参阅:readdir 的“0”结果如何在一段时间内不为假?. (不是重复的;只是密切相关。)
它在文档中的什么地方说在测试 readdir 的定义时?例如,这段代码
#!/usr/bin/perl
use strict;
use warnings;
opendir my $dir, "/tmp" or die "$!";
while (my $file = readdir($dir)) {
print "$file\n";
}
closedir $dir;
通过B::Deparse运行时产生:
use warnings;
use strict 'refs';
die "$!" unless opendir my $dir, '/tmp';
while (defined(my $file = readdir $dir)) {
do {
print "$file\n"
};
}
z.pl syntax OK
我期待这种行为,但我找不到它的指定位置。在perlop 的 I/O Operators 部分中,它说
以下几行是等效的:
while (defined($_ = <STDIN>)) { print; }
while ($_ = <STDIN>) { print; }
while (<STDIN>) { print; }
for (;<STDIN>;) { print; }
print while defined($_ = <STDIN>);
print while ($_ = <STDIN>);
print while <STDIN>;
但没有提及readdir
。