Path::Class::Dir でディレクトリ配下のファイルを操作
children から recurse に変更しようとして、双方のメソッドの使い方が若干違ったのでメモ。
というかドキュメント読めよ>俺。
children
ディレクトリ直下のファイルを取得する
use strict; use warnings; use Path::Class::Dir; my @files = Path::Class::Dir->new("/path/to")->children; for my $file (@files){ next if $file->is_dir; #ディレクトリはスキップ warn $file; #do_something } ##childrenを使わないなら my $dir = Path::Class::Dir->new("/path/to"); while (my $file = $dir->next){ next if $file->is_dir; #ディレクトリはスキップ warn $file #do_something }
recurse
ディレクトリ配下を再帰的に取得する
use strict; use warnings; use Path::Class::Dir; Path::Class::Dir->new("/path/to")->recurse( callback => sub { my $file = shift; return if $file->is_dir; #ディレクトリはスキップ warn $file #do_something }, );