1. 程式人生 > >Perl中File::Find模組的一個經典用法

Perl中File::Find模組的一個經典用法

     find通常被用來查詢特定路徑下的特定檔案,用來搜尋檔名非常有用,是perl中使用非常廣泛的檔案操作函式。

     先看個例子:

     use File::Find;
     find(\&PrintName, @curDir);
     sub PrintName{
                      my $path;
                      if (/$reg/) {
                            $path = $File::Find::name;
                            $path =~ s/\//\\/g;
                            $path =~ s/\\+/\\/g;
                            print LST "$path\n";
                      } 
      }
      這是一個find函式的經典使用方法。它包含在FILE模組中,有兩個引數。第一個一般為子程式,第二個為搜尋的路徑。這裡路徑是用列表表示的,可以存放多個路徑,即可以同時對幾條路徑進行搜尋。每遇到一個檔案,子程式都會被呼叫。我們需要判斷,找到的檔案是否與我們想要的檔案相匹配。    

     File::Find方式具有特殊變數,將被賦予特定的資訊,顯示如下:
     (1)$_包含目錄中的當前檔名
     (2)$File::Find::dir包含當前目錄名
     (3)$File::Find::name包含$File::Find::dir/$_

     在尋找過程中,我們都位於目錄$File::Find::dir下。這是可以用正則表示式選出我們尋找的檔案。注意在匹配時“$”代表一個字串最後的匹配而“^”代表與開頭匹配。