- 182 名前:nobodyさん [03/12/03 06:43 ID:4m1BwtbU]
- >175 $p の指定に不具合あり。join忘れてた。
use CGI':all';use File::Find;$P=join'/',grep/^\D\w*$/,(@i=split'/',path_info);( $Y,$M,$D)=grep/^\d+$/,@i;find sub{($d,$m,$y)=(localtime($t=(stat)[9]))[3..5];!( !($Y&&$Y-$y-1900)&&!($M&&$M-$m-1)&&!($D&&$D-$d)&&/\.txt/&&(!$i[-1]||/^$i[-1]$/) )or$e{$File::Find::name}=$t},"./$P";put header,start_html;for(sort{$e{$b}<=>$e{ $a}}keys%e){open F,$_;s/^\.//;chomp($h=<F>);put h2(a{href,url.$_},$h),pre<F>,hr ;close F}put end_html; 若干仕様変更。 - カテゴリ名は /^\D\w*$/ - ファイルの指定は、PATH_INFO の末尾のみ有効。 - findの対象はカレントディレクトリ以下のみ。(絶対パス指定できるのは、流石にちょっと BTW,ファイルハンドルってスコープ抜けたら勝手にcloseされるんだっけ?perlって。
|

|