読者です 読者をやめる 読者になる 読者になる

NeverBlog::Likk::Unexistable;

見なかったことにして下さい

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
    },
);