Results of The Perl Poetry Contest
Kevin Meltzer
October 2001
The results have been tallied, and I'm pleased to present the winning poems for this year's Perl Poetry Contest.
First prize goes to Steve Jenkins, who ported "The Doom of Noldor / The Prophecy of the North" from J.R.R. Tolkien's Quenta Silmarillion.
#!/usr/bin/perl # # The Doom of the Noldor / The Prophecy of the North # J. R. R. Tolkien - Quenta Silmarillion # # Tears unnumbered ye shall shed; # and the Valar will fence Valinor against you, # and shut you out, # so that not even the echo of your lamentation # shall pass over the mountains. # # On the House of Feanor the wrath of the Valar lieth # from the West unto the uttermost East, # and upon all that will follow them # it shall be laid also. # $_ = 'The Doom of the Noldor' or 'The Prophecy of the North'; while( /Doom/ ) { shed(' tears '); Valar: do { $Valinor{'fence'}++ and $shut_out; } until not( $echo_of_lamentation > $mountains ); for( $West..$uttermost_East ) { map{$_ = $Valar{'wrath'}} (@House_of_Feanor, @followers); } } sub shed{print shift}
Eric Andreychek took a valiant stab at the "Jabberwock" and is awarded second prize.
#!/usr/bin/perl $brillig and $toves{slithy}; for $gyre ( @wabe ) {} for $gimble ( @wabe ) {} map { s/^.*$/mimsy/g } @borogoves and $mome{raths} = outgrabe; if(my $son = fork) { warn "Beware the Jabberwock!"; jaws && bite, claws && catch; warn "Beware the Jubjub bird" and $shun, $Bandersnatch{frumious} == 1; }else{ $_{hand} = \$sword{vorpal}; seek FOE, $manxome, (4_294_967_296 * time); sleep ($tree{Tumtum} = $_); while (study) { stand } while (study($uffish)) { $_{stand} == 1; } unless ($Jabberwock = fork) { $Jabberwock{eyes} = flame, $Jabberwock{movement} = wiffle, $Jabberwock{location} = $wood{tulgey}; while ($coming=1) { burble }} (1, 2), (1, 2) and through and through; $sword{vorpal}{blade} = snicker-snack; (kill 9, $Jabberwock), $head = (chop $Jabberwock); sub{ return $_, $head }; } tell $son, "And hast thou slain the Jabberwock?". "Come to my arms, my beamish boy! ". "O frabjous day! Callooh! Callay! ", $_{joy} = chortle if $son; $brillig and $toves{slithy}; for $gyre ( @wabe ) {} for $gimble ( @wabe ) {} map { s/^.*$/mimsy/g } @borogoves and $mome{raths} = outgrabe;
Here's one from by Brian Van Horne, called "Life".
#!/usr/bin/perl # life.pl open life; use Wisdom; seek food, water, shelter; for (<life>) { # means to eat() if /hungry/; drink() if /thirsty/; sleep ("just for a while") if /tired/; read books, $think, write $code, etc; } close life; exit # quietly . . .
And, fourth prize goes to Guinevere Liberty for this entry.
my $dear; bless {$you}, $dear; local *pranksters; map { shift } @lonely_nights; for(keys %my_heart) { wait; join sin(exists $love{us}), reverse @anxiety; } push @me, $dear;
Thanks to everyone who contributed a poem!
Kevin Meltzer is the co-author of Writing CGI Applications with Perl, and a Software Engineer for Verio, Inc.