home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl502b.zip / eg / travesty < prev    next >
Text File  |  1994-10-18  |  771b  |  47 lines

  1. #!/usr/bin/perl
  2.  
  3. while (<>) {
  4.     next if /^\./;
  5.     next if /^From / .. /^$/;
  6.     next if /^Path: / .. /^$/;
  7.     s/^\W+//;
  8.     push(@ary,split(' '));
  9.     while ($#ary > 1) {
  10.     $a = $p;
  11.     $p = $n;
  12.     $w = shift(@ary);
  13.     $n = $num{$w};
  14.     if ($n eq '') {
  15.         push(@word,$w);
  16.         $n = pack('S',$#word);
  17.         $num{$w} = $n;
  18.     }
  19.     $lookup{$a . $p} .= $n;
  20.     }
  21. }
  22.  
  23. for (;;) {
  24.     $n = $lookup{$a . $p};
  25.     ($foo,$n) = each(lookup) if $n eq '';
  26.     $n = substr($n,int(rand(length($n))) & 0177776,2);
  27.     $a = $p;
  28.     $p = $n;
  29.     ($w) = unpack('S',$n);
  30.     $w = $word[$w];
  31.     $col += length($w) + 1;
  32.     if ($col >= 65) {
  33.     $col = 0;
  34.     print "\n";
  35.     }
  36.     else {
  37.     print ' ';
  38.     }
  39.     print $w;
  40.     if ($w =~ /\.$/) {
  41.     if (rand() < .1) {
  42.         print "\n";
  43.         $col = 80;
  44.     }
  45.     }
  46. }
  47.