prel vs peurvios ptyhon sicrpt


#!/usr/bin/perl

use strict;

foreach (<>)
{
foreach (split /\s+/)
{
my @letters = split //;
my $first_letter = shift @letters;
my $last_letter = pop @letters;
my $srecewdletters = join "", sort {int(rand(3))-1} @letters;
print "$first_letter$srecewdletters$last_letter ";
}
print "\n";
}

1 opmerking:

Unknown zei

Na even perlgolfen met uw script ben ik tot het volgende resultaat gekomen. Het kan wel korter enzo, maar ik heb deze keer eens voor duidelijkheid gekozen ;)

En sorry voor de rommelige formattering, maar ik krijg blogspot niet duidelijk gemaakt dat dat een fixed width font moet zijn...

#!/usr/bin/perl

use warnings;
use strict;

use List::Util qw/shuffle/; # import shuffle function from List::Util core module


while (<>) { # functionally equivalent to foreach, but it makes the intention of the loop a little more clear
foreach my $orig_word (split) {
my $word = $orig_word;
$word =~ s/[^a-zA-Z]//go; # only keep letters (for accented letters this regex needs to be changed)

if (length $word < 4) {
# short words don't need to be shuffled
print $orig_word;
next;
}

# extract middle letters from word and shuffle them
my ($first, $middle, $last) = $word =~ m/^(.)(.+)(.)$/o;
my $shuffled_middle = join "", shuffle(split //, $middle);

# print "first: '$first'\nmiddle: '$middle'\nshuffled middle: '$shuffled_middle'\nlast: '$last'\n"; # debug
print "${first}${shuffled_middle}${last} ";
}

print "\n";
}