サブディレクトリーを全部さらって処理をしたいとき、昔の人はUNIXのfindを使っていたらしい。使ったことはあるが、シンタックスを直ぐ忘れるので困る。
perl coreのFile::Findというのもあるが、使いやすいとはいえない。
こういうことはもうやめよう。
そんなときに便利なモジュールが File::Find::Ruleだ。
use File::Find::Rule;
# recursively find all perl scripts
my $directory = '.';
my @subdirs = File::Find::Rule
->file
->name('*.pl')
->in( $directory );
map {print $_, "\n"} @subdirs;