1 |
Cyrill Helg am Montag, 20. März 2006 11.53: |
2 |
> Am Montag, 20. März 2006 11:46 schrieb Peter Bossy: |
3 |
> > On Friday 17 March 2006 20:27, Jens 'Mr.Big' Bläsche wrote: |
4 |
> > > Gme_ eneir Sutide eneir elgnihcesn Uvinistert, ist es nchit witihcg |
5 |
> > > in wlecehr Rneflogheie die Bstachuebn in eneim Wrot snid. Das |
6 |
> > > ezniige was wcthiig ist, ist da_ der estre und der leztte Bstabchue |
7 |
> > > an der ritihcegn Pstoiion snid. |
8 |
> > |
9 |
> > Das erstaunliche daran ist, daß es leichter fällt wenn man den Text |
10 |
> > schnell liest. Versucht man sich auf das einzelne Wort zu |
11 |
> > konzentrieren, wird es schwer es zu lesen. |
12 |
> |
13 |
> Schade nur, dass immer dieser Text verwendet wird, den kennt eh schon |
14 |
> jeder. Wo gibts mehr davon? Oder wer schreibt mal sein Problem so? =) |
15 |
> |
16 |
> Lustig wäre auch ein Script dafür zu schreiben... |
17 |
|
18 |
Hier ein quick'n'dirty script - Eleganz war nicht das Ziel :-) |
19 |
|
20 |
Input via STDIN, output auf STDOUT. |
21 |
|
22 |
#!/usr/bin/perl |
23 |
use strict; |
24 |
use warnings; |
25 |
|
26 |
sub reorder { |
27 |
my $s=shift; |
28 |
my @ch=split //, $s; |
29 |
my $new; |
30 |
do { |
31 |
my (@n, %seen); |
32 |
$new=''; |
33 |
my $dec=@ch; |
34 |
while (@ch) { |
35 |
my $i=int(rand(scalar(@ch))); |
36 |
next if $seen{$i}; |
37 |
$seen{$i}=1; |
38 |
push @n, $ch[$i]; |
39 |
last unless --$dec; |
40 |
} |
41 |
$new=join '', @n; |
42 |
} while $s eq $new; |
43 |
return $new; |
44 |
} |
45 |
|
46 |
my $text; |
47 |
{ |
48 |
local $/; |
49 |
$text=<STDIN>; |
50 |
} |
51 |
$text=~s/(\b\w)(\w{2,}?)(\w\b)/$1.reorder($2).$3/egs; |
52 |
print $text; |
53 |
|
54 |
Hans |
55 |
|
56 |
-- |
57 |
gentoo-user-de@g.o mailing list |