
Journal Journal: new version of scramble.pl
#!/usr/bin/perl -w
# Coyprgiht © 2003 Jamie Zawinski <jwz@jwz.org>
#
# 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;
my @nw;
push @nw, $A;
if (defined ($Z)) {
my %tt2;
my $i;
for $i (0 .. $#w) { $tt2{$i} = rand; }
my @order = sort { $tt2{$a} <=> $tt2{$b}; } (0 .. $#w);
for $i (0 .. $#w) { push @nw,$w[$order[$i]];}
push @nw, $Z;
print @nw;
}
} 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;
# Coyprgiht © 2003 Jamie Zawinski <jwz@jwz.org>
#
# 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;
my @nw;
push @nw, $A;
if (defined ($Z)) {
my %tt2;
my $i;
for $i (0
my @order = sort { $tt2{$a} <=> $tt2{$b}; } (0
for $i (0
push @nw, $Z;
print @nw;
}
} 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;