サブディレクトリーを全部さらって処理をしたいとき、昔の人は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;