05/02/06 15:09:44
>>161
WWWBOARD.PL 最後
sub sub_page{my($in,$out)=@_;open MAIN,$in or die$!;read MAIN,my$html,-s MAIN;
close MAIN;$html=~s{(?<=\n<ul>\n)(.+)(?=\n<\/ul>\n\n)}{my@data;my$html=$1;my$i
=0;while($html=~/<!--top: \d+--><li><a href="([^"]*)">(.*)<\/a> - <b>(.*)<\/b> <i>(.*)<\/i>/g) {
my@tmp=($1,$2,$3);my@date=split/\D+/,$4;$date[0]+=1900;@{$data[$i++]}{qw/url
subject name date/}=(@tmp,sprintf"%04d/%02d/%02d %02d:%02d:%02d",@date);}join"\n",map
qq{<li><a href="$_->{'url'}">$_->{'subject'}<\/a> - <b>$_->{'name'}</b> <i>$_->{'date'}</i>},
sort{$b->{'date'}cmp$a->{'date'}}@data;}eis;open SUB,">$out"or die$!;print SUB
$html;close SUB;}
436行目
sub_page("$basedir/$mesgfile", "$basedir/sort_$mesgfile");
77行目
read DATA,my$code,-s DATA;my$add_code=<<'EOD';
my$html='';sub TIEHANDLE{bless{}}sub PRINT{$html.=$_[1]}BEGIN{tie*STDOUT,'main'}
END{untie*STDOUT;$html=~s/以下の情報が伝言板に記入されました:// if$FORM{'preview'};
$html=~s{(<textarea.*?>)\s*(.*?)\s*(?=</textarea>)}{$1$2}gis;print$html;}if
($FORM{'preview'}){return_html();rest_of_form();exit;}
EOD
$code=~s{(?=</form>)}{プレビュー<input type=checkbox name=preview value=1>}gi;
$code=~s{(?<=\&get_variables;\n)}{$add_code};
eval$code;END{print$@}
__DATA__
WWWBOARD.HTM
プレビュー<input type=checkbox name=preview value=1>