標籤:perl readdir 函數詳解
perl readdir函數詳解
2013年12月30日 Perl基礎 共 763字 字型大小 小 中 大 暫無評論 閱讀 4,384 次
readdir函數從一個用 opendir 開啟的目錄控制代碼讀取目錄記錄也就是檔案名稱。用法如下:
readdir DIRHANDLE
在標量環境中,readdir函數返回下一個目錄記錄,否則,它返回undef。在列表環境中,它返回在該目錄中所有剩下的記錄,如果剩下沒有記錄了,那麼這個返回可能是一個空列表。比如:
opendir(THISDIR, ".") or die "serious dainbramage: $!";
@allfiles = readdir THISDIR;
closedir THISDIR;
print "@allfiles\n";
上面的代碼在一行裡列印出目前的目錄的所有檔案。如果你想避免“.”和“..”記錄,使用下面其中的一條:
@allfiles = grep { $_ ne ‘.‘ and $_ ne ‘..‘ } readdir THISDIR;
@allfiles = grep { not /^[.][.]?\z/ } readdir THISDIR;
@allfiles = grep { not /^\.{1,2}\z/ } readdir THISDIR;
@allfiles = grep !/^\.\.?\z/, readdir, THISDIR;
為了避免所有 .* 檔案:
@allfiles = grep !/^\./, readdir THISDIR;
只拿出文字檔:
@textfiles = grep -T, readdir THISDIR;
不過我們再看看最後一個例子,因為如果readdir的結果不在目前的目錄裡,那麼我們需要在它的結果上把目錄部分粘回去——象這樣:
opendir(THATDIR, $path) or die "can‘t opendir $path: $!";
@dotfile = grep { /^\./ && -f } map { "$path/$_" } readdir(THATDIR);
closedir TH
perl readdir函數詳解 擷取目錄下檔案