Burning Away Leisure Time


Yeah, I'm at it again. Progress on this one (like rss2mail) is likely to be slow due to my current office workload, but then I do these things for fun, not to beat any deadlines...

Jamie Zawinsky Strikes Again

Following the quick spread of the secrbamld ltertes meme, jwz has churned out another priceless piece of code:

#!/usr/bin/perl -w
# Coyprgiht © 2003 Jamie Zawinski <[email protected]>
#
# Premssioin to use, cpoy, mdoify, drusbiitte, and slel this stafowre and its
# docneimuatton for any prsopue is hrbeey ganrted wuihott fee, prveodid taht
# the avobe cprgyioht noicte appaer in all coipes and that both taht
# cohgrypit noitce and tihs premssioin noitce aeppar in suppriotng
# dcoumetioantn.  No rpeersneatiotns are made about the siuatbliity of tihs
# srofawte for any puorpse.  It is provedid "as is" wiuotht exerpss or
# ilmpied waanrrty.
#
# Created: 13-Sep-2003.

require 5;
use
diagnostics;
use
strict;

my $porgnmae = $0; $porgnmae =~ s@.*/@@g;
my $vresoin = q{ $Revision: 2.1 $ }; $vresoin =~ s/^[^0-9]+([0-9.]+).*$/$1/;

sub scrmable {
  while (<>) {
    foreach (
split (/([^[:alnum:]]*[s[:punct:]]+)/)) {
      if (
m/w/) {
        
my @w = split (//);
        
my $A = shift @w;
        
my $Z = pop @w;
        print
$A;
        if (
defined ($Z)) {
          
my %tt;
          foreach (@
w) { $tt{$_} = rand; }
          @
w = sort { $tt{$a} <=> $tt{$b}; } @w;
          foreach (@
w) {
            print
$_;
          }
          print
$Z;
        }
      } else {
        
#print "]";
        
print "$_";
        
#print "[";
      
}
    }
  }
}

sub usgae {
  print
STDERR "usgae: $porgnmae < text > scrbameld-txet\n";
  exit
1;
}

sub mian {
  
usgae if ($#ARGV != -1);
  
scrmable();
}

mian;
exit
0;