「Path::Class」の版間の差分
提供: dsk's note
細 |
細 (→めも) |
||
34行目: | 34行目: | ||
===めも=== | ===めも=== | ||
− | + | absolute 絶対パス | |
− | + | relative 相対パス | |
− | + | basename ファイルネーム | |
− | + | is_dir ディレクトリだった場合1 | |
− | + | next if $file->is_dir; #ディレクトリはスキップ | |
− | + | my $file = $dir->next | |
− | + | サブディレクトリの取得 my $subdir = $dir->subdir('baz'); #foo/bar/baz | |
− | + | 親ディレクトリの取得 my $parent = $dir->parent; # foo | |
− | + | ファイルの中身をすべて取得 | |
− | + | eval { $f = $file->slurp; }; # ファイルがない場合 | |
− | + | if ($@) { die "cannot open file : $!"; } | |
[[Category: perl]] | [[Category: perl]] | ||
{{google/ad/01}} | {{google/ad/01}} |
2015年5月12日 (火) 05:06時点における版
ディレクトリ配下にあるファイルリストを作成(再帰的)
my @files; Path::Class::Dir->new("/home/dsktnk/www/")->recurse( callback => sub { my $file = shift; return if $file->is_dir; #ディレクトリはスキップ push(@files, $file); }, );
ディレクトリ配下のディレクトリとファイルを表示
my @dir = dir($path)->children; @dir = sort {$b->is_dir <=> $a->is_dir} @dir; for my $d(@dir){ my $basename = $d->basename; my $fileurl = $d->relative; my $mtime = localtime($d->stat->mtime); if ($d->is_dir){ print qq|<b>$basename</b>||; } elsif($d->is_dir ne 1){ print qq|<br>$basename</a> [$mtime]|; } }
めも
absolute 絶対パス relative 相対パス basename ファイルネーム is_dir ディレクトリだった場合1 next if $file->is_dir; #ディレクトリはスキップ my $file = $dir->next サブディレクトリの取得 my $subdir = $dir->subdir('baz'); #foo/bar/baz 親ディレクトリの取得 my $parent = $dir->parent; # foo
ファイルの中身をすべて取得
eval { $f = $file->slurp; }; # ファイルがない場合 if ($@) { die "cannot open file : $!"; }