#!/usr/mesh/bin/perl if($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$str,$ENV{'CONTENT_LENGTH'}); } else { $str=$ENV{'QUERY_STRING'}; } @part=split('&',$str); foreach $i (@part) { ($variable,$value)=split('=',$i); $cgi{$variable}=$value; } #エラー対策:0以下はまずい if($cgi{'weeks'}<=0) { #デフォールト値として1週間を設定 $cgi{'weeks'}=1; } #ファイル検索に提供するディレクトリのリストを作成 @dlist=("./","./new/"); @list=(); # 念のためリストの初期化 @result=(); # 念のためリストの初期化 $curtime=time(); # 現在の時刻の取得 @list=&dir(@dlist); # カレントディレクトリのファイル一覧取得 while($str=shift(@list)) #ファイルの変更時刻を調べてみる { @attrib=stat($str); $subs1=substr($str,-5,5); $subs2=substr($str,-4,4); if($subs1 eq ".html" || $subs2 eq ".htm") { #基準時からの秒数なので日数を秒に変換して差を調べる・・・ if($curtime-@attrib[9]<=60*60*24*7*$cgi{'weeks'}) { @result=(@result,$str); } } } print "Content-Type: text/html\n\n"; print "ファイル検索結果\n"; print "

ファイル検索結果

\n"; print "現在から$cgi{'days'}日以内に変更されたファイルは
\n"; if(length(@result[0])!=0) { print "
です。\n"; } else { print "ありません。せっかく検索してもらったのに申し訳無いm(__)m
\n"; print "\n"; } sub dir { while($name=shift) { if(opendir(DIR,$name)) { @tmp=readdir(DIR); closedir(DIR); } while($d=shift(@tmp)) { @list=(@list,$name.$d); } } return @list; }