perl 遞迴地遍歷目錄下的檔案
阿新 • • 發佈:2019-02-16
#!/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;#列印檔案列表