Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
Perl

Journal Journal: new version of scramble.pl

#!/usr/bin/perl -w
# Coyprgiht &#169; 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;

Slashdot Top Deals

Unix will self-destruct in five seconds... 4... 3... 2... 1...

Working...