#!/usr/local/bin/perl &listing_html('top_base.html', 'listing_reverse', 'whatsnew.txt'); sub listing_html { my($html, $sub, @arg) = @_; my($_name); my($out); my($buffer); $out = "Content-type: text/html\n\n"; open(HTML,$html); { while ( 1 == 1 ) { if ( $out =~ /()/ ) { print $` . $1 . $2 . $3; $out = $'; last; } else { print $out; } last until $out = ; } $buffer = ''; while ( 1 == 1 ) { #buffer if ( $out =~ /()/ ) { $buffer .= $`; $out = $1 . $2 . $3 . $'; last; } else { $buffer .= $out; } last until $out = ; } eval "&$sub" . '($buffer, @arg)'; while ( 1 == 1 ) { #tail print $out; last until $out = ; }; } close(HTML); } sub listing { my($buf, $data) = @_; my($out); my(@term); open(DATA,"<$data"); { while() { @term = split(/\t/); $out = $buf; while( $out =~ /(##embed_num:)([0-9]+)(##)/ ) { $out = $` . @term[$2] . $'; } print $out; } } close(DATA); } sub listing_reverse { my($buf, $data) = @_; my($out); my(@term); my(@line); my($i, $j); open(DATA,"<$data"); { for($i = 0; ; $i++) { $line[$i] = ; if ( $line[$i] eq '' ) { last; } } $i--; chop( @line ); for ( $j = 5 ; $i >= 0 && $j > 0; $i--, $j-- ) { @term = split(/\t/, @line[$i] ); $out = $buf; while( $out =~ /(##embed_num:)([0-9]+)(##)/ ) { $out = $` . $term[$2] . $'; } print $out; } } close(DATA); }