|
#!/usr/bin/perl
while (<>) {
next if /^\./;
next if /^From / .. /^$/;
next if /^Path: / .. /^$/;
s/^\W+//;
push ( @ary , split ( ' ' ));
while ( $#ary > 1) {
$a = $p ;
$p = $n ;
$w = shift ( @ary );
$n = $num { $w };
if ( $n eq '' ) {
push ( @word , $w );
$n = pack ( 'S' , $#word );
$num { $w } = $n ;
}
$lookup { $a . $p } .= $n ;
}
}
for (;;) {
$n = $lookup { $a . $p };
( $foo , $n ) = each (lookup) if $n eq '' ;
$n = substr ( $n , int ( rand ( length ( $n ))) & 0177776,2);
$a = $p ;
$p = $n ;
( $w ) = unpack ( 'S' , $n );
$w = $word [ $w ];
$col += length ( $w ) + 1;
if ( $col >= 65) {
$col = 0;
print "\n" ;
}
else {
print ' ' ;
}
print $w ;
if ( $w =~ /\.$/) {
if ( rand () < .1) {
print "\n" ;
$col = 80;
}
}
}
|