私readdir(DIR)
はファイルを読むために使用しますが、私が使用するとき
$file = readdir(DIR);
print $file;
print "\n";
sleep(2);
ファイルを1回印刷します。
しかし、私が使用するとき
print readdir(DIR);
print "\n";
sleep(2);
多くのファイルが飛び出します
どうしたの?
ありがとう
私readdir(DIR)
はファイルを読むために使用しますが、私が使用するとき
$file = readdir(DIR);
print $file;
print "\n";
sleep(2);
ファイルを1回印刷します。
しかし、私が使用するとき
print readdir(DIR);
print "\n";
sleep(2);
多くのファイルが飛び出します
どうしたの?
ありがとう
readdir
ファイルを読みません。ディレクトリをスキャンして、次のディレクトリ リストを探します。
ここで確認できperldoc
ます: readdir
の宣言で 1 つのファイルのみを出力した理由$file
は、それがスカラー値であるためです。ディレクトリハンドルから一度だけ読み取り、リストを返します。
より一般的には、ディレクトリ全体から読み取りたい場合は、それをリストに割り当てreaddir
ます。これにより、2 番目の例ですべてのディレクトリ リストが出力されます。
readdir
returns the next file when evaluated in scalar context (or undef after the last one has been read).
my $file = readdir($fh);
The scalar assign operator evaluates its RHS operand in scalar context.
readdir
returns the remaining files when evaluated in list context.
my @files = readdir($fh);
print
evaluate its argument list in list context.