「Path::Class」の版間の差分
提供: dsk's note
細 |
|||
| 9行目: | 9行目: | ||
}, | }, | ||
); | ); | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ===ディレクトリ配下のディレクトリとファイルを表示=== | ||
| + | <syntaxhighlight lang="perl"> | ||
| + | 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><a href="$baseurl\doc3.cgi?d=$basename">$basename</a></b>||; | ||
| + | } | ||
| + | |||
| + | elsif($d->is_dir ne 1){ | ||
| + | print qq|<br><a href="$baseurl$fileurl">$basename</a></b> [$mtime]|; | ||
| + | } | ||
| + | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2015年5月12日 (火) 05:01時点における版
ディレクトリ配下にあるファイルリストを作成(再帰的)
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><a href="$baseurl\doc3.cgi?d=$basename">$basename</a></b>||; } elsif($d->is_dir ne 1){ print qq|<br><a href="$baseurl$fileurl">$basename</a></b> [$mtime]|; } }