参照:while条件でreaddirの「0」がfalseではない場合はどうなりますか?。(重複ではありません。密接に関連しています。)
ドキュメントのどこに、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/OOperatorsセクションに
次の行は同等です。
while (defined($_ = <STDIN>)) { print; }
while ($_ = <STDIN>) { print; }
while (<STDIN>) { print; }
for (;<STDIN>;) { print; }
print while defined($_ = <STDIN>);
print while ($_ = <STDIN>);
print while <STDIN>;
しかし、の言及はありませんreaddir
。