my @files_exist = reverse sort map { $_ =~ s/^(\d+)\.html$/$1/; $_} grep { /^\d+.\.html$/} readdir DIRE; closedir DIRE; my $how_many_page = sub { my ($how) = @_; $how = $how/5; $how =~ /(\d+?).?(\d+)?/; if(!$2) { return $1 } else { return $1+1 } }; my $file = sub { my $file_name = shift; my($topic,$title,$lang); open my $FH,'<', '/home/lenn287/public_html/diary/'.$file_name.".html"; while(<$FH>) { $topic = $1 if //; $title = $1 if //; $lang = $1 if //; } close $FH; return ($topic,br(),$title,br(),$lang,p()); }; if($page !~ /^[0-$how_many_page->($#files_exist)]$/) { print header,start_html,"invalid $page",end_html; exit(0); } my ($next,$previous); if($page < $how_many_page->($#files_exist)) { my $next_page=$page+1; $next = a({href=>"/cgi-bin/author.pl?page=$next_page"},"next"); } else { $next=''; } if($page > 0) { my $previous_page=$page-1; $previous = a({href=>"/cgi-bin/author.pl?page=$previous_page"},"previous"); } else { $previous=''; } my $first_file = $page*5; my $last_file = $page*5+4; my @FILES;