Texte entstellen durch das Verschieben von Buchstaben

Inhalt:

Aufgabe

Merkwürdige Emails erzeugen, wie z.B.:

Gmäeß eneir Sutide eneir elgnihcesn Uvinisterät, ist es nchit witihcg in wlecehr Rneflogheie die Bstachuebn in eneim Wrot snid, das ezniige was wcthiig ist, ist daß der estre und der leztte Bstabchue an der ritihcegn Pstoiion snid. Der Rset knan ein ttoaelr Bsinöldn sien, tedztorm knan man ihn onhe Pemoblre lseen. Das ist so, wiel wir nciht jeedn Bstachuebn enzelin leesn, snderon das Wrot als gseatems.

Aufruf mit Parametern

Als Parameter die zu verarbeitende Textdatei angeben.

Skript

#!/usr/bin/perl

use strict;
use warnings;

while(<>) {
s/\b(\w+)\b/&wortspiel($1)/ge;
print;
}

sub wortspiel {
 if ($_[0] =~ m/\b(\w)(\w+)(.)\b/) {
   my @letters = split(//, $2);
   shuffle (\@letters);
   return $1.join ('', @letters).$3;
 }
 else {
   return $_[0];
   }
}

sub shuffle {

 # vgl. O'Reilly, Perl-Kochbuch dt., 1. Auflage, 4.17, fisher-yates-shuffle

 my $array = shift;
 my $i;

 for ($i = @$array; --$i; ) {
   my $j = int rand ( $i+1 );
   next if $i == $j;
   @$array[$i, $j] = @$array[$j, $i];
   }
}

Ergänzungen, Kommentare

Wenn man noch ein use locale; oben einfügt, werden bei deutscher Locale auch Umlaute mit verwürfelt.

-- HaraldBongartz - 08 Nov 2003

Als witzige Form der Steganographie kann man in den verwürfelten Wortmitten auch Information kodieren, je nach dem in welcher sinnlosen Reihenfolge die Buchstaben stehen. Siehe auch mein rhabarber Generator wink

-- ThomasChust - 10 Okt 2005

UtilPerlSkripteSubForm edit

Titel Textentsteller
Autor RonnieNeumann?
Bereich PerlSkripteJokes
Topic revision: 2005-10-10, ThomasChust
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.