我用readdir(DIR)
讀取文件,但是當我使用爲什麼「打印readdir(DIR_HANDLE);」會彈出很多文件?
$file = readdir(DIR);
print $file;
print "\n";
sleep(2);
它將打印文件一次;
但是當我使用
print readdir(DIR);
print "\n";
sleep(2);
它蹦出許多文件
有什麼錯呢?
感謝
我用readdir(DIR)
讀取文件,但是當我使用爲什麼「打印readdir(DIR_HANDLE);」會彈出很多文件?
$file = readdir(DIR);
print $file;
print "\n";
sleep(2);
它將打印文件一次;
但是當我使用
print readdir(DIR);
print "\n";
sleep(2);
它蹦出許多文件
有什麼錯呢?
感謝
readdir
沒有讀取文件。它掃描下一個目錄列表的目錄。
您可以在這裏檢查出perldoc
:readdir
它印只有一個文件,你的$file
聲明的原因是因爲它是一個標量值。它只會從目錄句柄中讀取一次並返回一個列表。
更常見的情況是,當您想要從整個目錄讀取時,將其分配給一個列表,該列表將返回readdir
,從而打印第二個示例中的所有目錄列表。
我現在明白了.. – user2131116 2013-03-11 03:32:37
readdir
在標量上下文中評估時返回下一個文件(或者讀取最後一個文件後的undef)。
my $file = readdir($fh);
標量賦值運算符在標量上下文中評估其RHS操作數。
readdir
當在列表上下文中計算時返回其餘文件。
my @files = readdir($fh);
print
在列表上下文中評估其參數列表。
閱讀有關列表與標量上下文的信息。在打印中,您正在使用一個列表。 – stark 2013-03-11 03:07:29
那麼readdir可以輸出列表和單個標量嗎? – user2131116 2013-03-11 03:11:41
好的我知道了..... – user2131116 2013-03-11 03:16:05