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