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も組み込めばいいのにね。