ディレクトリを再帰的にたどりファイル一覧を取得する その2 File::Find - Perl

今回は、PerlのFile::Findモジュールを利用した方法を解説する。File::FindモジュールはPerlに標準で入っているため、通常はインストールの作業などはいらない。

サンプル

;#
;#ファイル表示
;#

use File::Find;

#-- ディレクトリを指定(複数の指定可能) --#
@directories_to_search = ('./');

#-- 実行 --#
find(\&wanted, @directories_to_search);


#--------------------------------------------
#ファイルが見つかる度に呼び出される
#--------------------------------------------
sub wanted{
  print $File::Find::dir, '/';    #カレントディレクトリ
  print $_;          #ファイル名
  print "\n";

  #フルパスのファイル名
  #print $File::Find::name, "\n";
}

実行結果

./.
./index.cgi
./define.pm
./dbdocs
./js
./js/index.js
./note
./note/index.cg
./note/add.cgi
./note/view.cgi
./note/del.cgi
./css
./css/view.css

File::Filndモジュールは、この他にハッシュ(連想配列)に実行結果を入れることができるなど、オプションも充実している。詳しくはドキュメントを読まれたい。 search.cpan.org