我使用readdir(DIR)
来读取文件,但是当我使用
$file = readdir(DIR);
print $file;
print "\n";
sleep(2);
它会打印一次文件;
但是当我使用
时print readdir(DIR);
print "\n";
sleep(2);
它弹出许多文件
它出了什么问题?
感谢
答案 0 :(得分:2)
readdir
无法读取文件。它扫描目录以查找下一个目录列表。
您可以在此处查看perldoc
:readdir
它只打印一个声明为$file
的文件的原因是因为它是一个标量值。它只会从目录句柄中读取一次并返回一个列表。
更常见的是,当您想要从整个目录中读取时,将其分配给readdir
返回的列表,从而在第二个示例中打印所有目录列表。
答案 1 :(得分:0)
readdir
返回下一个文件(或者在读取最后一个文件后的undef)。
my $file = readdir($fh);
标量赋值运算符在标量上下文中计算其RHS操作数。
readdir
在列表上下文中进行评估时返回剩余的文件。
my @files = readdir($fh);
print
在列表上下文中评估其参数列表。