perl readdir函數詳解 擷取目錄下檔案

來源:互聯網
上載者:User

標籤:perl   readdir   函數詳解   

perl readdir函數詳解

2013年12月30日  Perl基礎  共 763字 字型大小 小 中 大  暫無評論  閱讀 4,384 次

readdir函數從一個用 opendir 開啟的目錄控制代碼讀取目錄記錄也就是檔案名稱。用法如下:

  1. readdir DIRHANDLE

在標量環境中,readdir函數返回下一個目錄記錄,否則,它返回undef。在列表環境中,它返回在該目錄中所有剩下的記錄,如果剩下沒有記錄了,那麼這個返回可能是一個空列表。比如:

  1. opendir(THISDIR, ".") or die "serious dainbramage: $!";

  2. @allfiles = readdir THISDIR;

  3. closedir THISDIR;

  4. print "@allfiles\n";

上面的代碼在一行裡列印出目前的目錄的所有檔案。如果你想避免“.”和“..”記錄,使用下面其中的一條:

  1. @allfiles = grep { $_ ne ‘.‘ and $_ ne ‘..‘ } readdir THISDIR;

  2. @allfiles = grep { not /^[.][.]?\z/ } readdir THISDIR;

  3. @allfiles = grep { not /^\.{1,2}\z/ } readdir THISDIR;

  4. @allfiles = grep !/^\.\.?\z/, readdir, THISDIR;

為了避免所有 .* 檔案:

  1. @allfiles = grep !/^\./, readdir THISDIR;

只拿出文字檔:

  1. @textfiles = grep -T, readdir THISDIR;

不過我們再看看最後一個例子,因為如果readdir的結果不在目前的目錄裡,那麼我們需要在它的結果上把目錄部分粘回去——象這樣:

  1. opendir(THATDIR, $path) or die "can‘t opendir $path: $!";

  2. @dotfile = grep { /^\./ && -f } map { "$path/$_" } readdir(THATDIR);

  3. closedir TH


perl readdir函數詳解 擷取目錄下檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.