aboutsummaryrefslogtreecommitdiff
path: root/challenge-289/jtimothyking/perl/ch-2.pl
blob: 9fa7b5c2eb901ea5e8e909e1f1d71d5f74c5d100 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl
use v5.38;
use warnings;

use List::Util qw(shuffle);

while (<>) {
    print for map { jumble($_) } split /\b/;
}

sub jumble {
    my $word = shift;
    return $word if length $word < 4;
    return $word if $word !~ /\w/;
    my @letters = split //, $word;
    return $letters[0] . (join '', shuffle @letters[1 .. $#letters - 1]) . $letters[-1];
}

__END__