Pick

I love the new "pick" method of lists in Perl 6. Here's a handy Shakespearean insult generator (cf https://kyclark.gitbooks.io/metagenomics/content/arrays.html):

#!/usr/bin/env perl6

sub MAIN (Int :$n=1) {
    my @adjectives = qw{scurvy old filthy scurilous lascivious
        foolish rascaly gross rotten corrupt foul loathsome irksome
        heedless unmannered whoreson cullionly false filthsome
        toad-spotted caterwauling wall-eyed insatiate vile peevish
        infected sodden-witted lecherous ruinous indistinguishable
        dishonest thin-faced slanderous bankrupt base detestable
        rotten dishonest lubbery};
    my @nouns = qw{knave coward liar swine villain beggar
        slave scold jolthead whore barbermonger fishmonger carbuncle
        fiend traitor block ape braggart jack milksop boy harpy
        recreant degenerate Judas butt cur Satan ass coxcomb dandy
        gull minion ratcatcher maw fool rogue lunatic varlet worm};

    printf "You %s, %s, %s %s!\n",
        @adjectives.pick(3), @nouns.pick for ^$n;
}
$ ./insult.pl6 -n=5
You loathsome, toad-spotted, scurvy knave!
You old, indistinguishable, false jolthead!
You ruinous, dishonest, scurvy fool!
You bankrupt, corrupt, sodden-witted dandy!
You peevish, sodden-witted, lubbery beggar!

Leave a comment

About Ken Youens-Clark

user-pic I work for Dr. Bonnie Hurwitz at the University of Arizona where I use Perl quite a bit in bioinformatics and metagenomics. I am also trying to write a book at https://www.gitbook.com/book/kyclark/metagenomics/details. Comments welcome.