File::FindとFile::Finder

File::Findだと、


#! /usr/local/bin/perl
use strict;
use warnings;
use File::Find;
use Data::Dumper;
our @file_name;
find(\&file_list,'/usr/target/path/');
print Dumper(\@file_name);
sub file_list {
push(@file_name,$File::Find::name);
}

こんなの??
\&find_statってあたりがダサいw

ちなみに


find(\&file_list,@dir_list);

こんな感じで調べたいディレクトリのリストも渡せます。

でも、下手にこれを使うと、メモリがしがし食うし遅くなるし要注意。
特に、ディレクトリ配下に大量ファイルがあって、lsたたくだけでも遅くなるような
場合は特にやばいです。

File::Finderだと、


#! /usr/local/bin/perl
use strict;
use warnings;
use File::Finder;
use Data::Dumper;
my $all_files = File::Finder->type('f');
my $all_files_printer = $all_files->print;
my @results = $all_files->in('/usr/target/path/');
print Dumper(\@results);

こんな感じでいけます。Good!!
さすが、Randal L. Schwartz氏

File::Findはデフォルトモジュールなのでよいのですがね。
File::Finderも組み込めばいいのにね。