1. 程式人生 > >perl 遞迴地遍歷目錄下的檔案

perl 遞迴地遍歷目錄下的檔案

複製程式碼
#!/usr/bin/perl -w
use strict;
use File::Spec;

local $\ ="\n";#當前模組的每行輸出加入換行符    

my %options;

#目錄路徑
$options{single_case} = '/home/jiangyu/src/pl/Example';

   my @cases;
    if (-d $options{single_case}) {#判斷目錄是否存在
        my @files;
        my $dh;
        push(@files, $options{single_case});
        
while (@files) { if (-d $files[0]) {#若是目錄執行以下操作 opendir $dh, $files[0] or die $!;#開啟目錄控制代碼,若失敗列印錯誤資訊 @_ = grep { /^[^\.]/ } readdir $dh;#過濾掉以"."和".."的檔案,即UNIX下的隱藏檔案 foreach (@_) { push(@files, File::Spec->catfile ($files[0
], $_));#連線目錄名和檔名形成一個完整的檔案路徑: } closedir $dh; } #若是檔案直接壓入陣列@cases中 elsif ($files[0] =~ /\.t$/) { push(@cases, $files[0]); } shift @files; } } else { @cases = ($options{single_case}); }
print $_ foreach @cases;#列印檔案列表
複製程式碼