PREVIOUS  TABLE OF CONTENTS  NEXT 

The Perl Poetry Contest

Kevin Meltzer

The First Annual Perl Poetry Contest results are in, and I was quite happy to see so many entrants. We received haikus (although not always true to haiku style), love poems, ports of real poems, and poetry generators. The competition was fierce, the styles were varied, and there were even some entries containing no Perl at all.

There were no real categories in this contest, but to be fair in the judging I grouped the type of poems together. Haikus were judged against haikus, poem generators against poem generators, and entries containing no Perl grouped together in /dev/null.

BEST POEM PORT

Wayne Myers ported this Yeats poem, The Coming Of Wisdom with Time, to Perl. I enjoyed his use of Perl functions to coincide with Yeats' word use. For example, this Yeats line:

Though leaves are many
became
while ($leaves > 1) {

This was exactly what I was hoping to see from the entries. I also enjoyed his tounge-in-cheek use of sway() to ensure that the poem will die() if not on a Sun was slick. Here is the original poem:

Though leaves are many, the root is one;
Through all the lying days of my youth
I swayed my leaves and flowers in the sun;
Now I may wither into the truth

And here is Myers' Perl version:

while ($leaves > 1) {
	$root = 1;
}
foreach($lyingdays{'myyouth'}) {
	sway($leaves, $flowers);
}
while ($i > $truth) {
	$i--;
}
sub sway {
	my ($leaves, $flowers) = @_;
	die unless $^O =~ /sun/i;
}

HAIKU

I was a bit surprised to read this haiku by Clinton Pierce. All true haikus should pertain to the seasons, and while poetry reading is a subjective art, this poem seems to have a more offensive message.

	       1, 2 or more('to'),
	tie $her, $up and bind $her, $up;
	 sub for ({ each  %2; do {} };)

I think that's supposed to be a devilish smiley at the end.

A PERL PROGRAM THAT GENERATES POETRY

Ronald J. Kimball went all out on this one. It was the only entry I received with its own bibliography. His sonnet.pl explains itself:

sonnet.pl 0.1 generates sonnets, inasmuch as the poems are 14 lines long, in iambic pentameter, and match the rhyming scheme ABAB CDCD EFEF GG. Any apparent meaning in the generated poems is purely coincidental.

To create the sonnets, Ronald's entry uses a pronunciation list (http://linguist.dartmouth.edu/~rjk/mywords.dat.gz) generated by Sean Burke's Moby-based Pronunciator (Searching for Rhymes with Perl, TPJ #16). Ronald also received extra points because his entry ran with warnings on.

I ran this many, many times, and was amused by every sonnet it generated. The moment of endearment came when I read Magmatic appendicular tort duck --which actually rhymed with an alternate line, in true sonnet form.

Here is a sample of the output from Ronald's sonnet.pl:

Rani proponent lapis anus raft
Triacetate magniloquently brogue
Locution cannonball outbuild corf graft
Harmoniously raspingly pure vogue
Inclusion prayer waive endarch flowage halves
Sensillum egg pilosity impart
Retaliate exclude filets moo calves
Fibrotic piling scrapie purpleheart
Troll ignominy build join rattlebrained
Azan prosector hydrothorax mog
Defoliate accomplice holt constrained
Back prostatectomy numb door incog
   Epergne appropriate charivari
   Cahoots misvalue jimp born abatis

This entry kept me amused for more time than I care to admit, and I hope others find it as entertaining, artistic, and strangely poetic as I have.

OBFUSCATED POETRY?

This entry from Damon Harper would seem to be a better match for the Obfuscated Perl Contest. I liked the extensive use of actual Perl. Damon didn't abuse whitespace, and almost makes this script look like it was a real poem first. This entry runs with warnings on and prints the poem itself when executed. Here is his entry, which should be named waiting.

$_=open (and_, "waiting")==0?'': system ('clear');

@hoping= <and_>; $waiting
=$i{m}{'patiently' and ''}='breathlessly';
foreach (human ('contact')){

$just= "$waiting to "=~/^breathe?/

&&'forever' ?"waiting
------
".("but when w$e"=~/ do/, join( 'together',())):
                                            ($o='ur'. crypt('ic',
"words confuse"),
s/[^ta-y! \n$o: ]//go,$_);
$i{m}=print($ed? 'indelibly': ($waiting= $just)). "disappoints";}

sub human {$e="motionally now:
done with"; @hoping;}
$_="done with $waiting

the solution" eq'uals'? 'this': 'eyes' .close($d =and_);
                                              $i{mmerse}="$d in";
bless\$ed; sleep;
The output of Damon's poem:

waiting
------

open and waiting: system clear

hoping and waiting
impatiently and breathlessly
foreach human contact

just waiting to breathe

forever waiting

but when we do join together: our cryptic words confuse
stay!  no: go

imprinted indelibly: waiting just disappoints

sub human emotionally now:
done with hoping
done with waiting

the solution equals this: eyes closed and immersed in blessed sleep
And then the program sleeps.

BEST OF SHOW

This short entry, by Angie Winterbottom, was the most interesting. Her style was fresh and unique, and her use of visual representations in the text are clever. Consider the following excerpt:

		($blaze_of_night{moon} == black_hole)

"The moon, a black hole in the blaze of night." Marvelous! Angie tells us that this entry is from Jim Steinman's song The Invocation, on the Pandora's Box album Original Sin. Here is her entry:

if ((light eq dark) && (dark eq light)
   && ($blaze_of_night{moon} == black_hole)
   && ($ravens_wing{bright} == $tin{bright})){
 my $love = $you = $sin{darkness} + 1;
};

Here are the original lyrics:

If light were dark and dark were light
The moon a black hole in the blaze of night
A raven's wing as bright as tin
Then you, my love, would be darker than sin.

Honorable mentions: Robin Berfon, for a sweet love poem (not to me, keep in mind), and to Anoop Sarkar, Steve McNabb, and Sterling Hughes.

Thanks to everyone for making this contest a success, and get your Perl plumes ready for next year!.

_ _END_ _


PREVIOUS  TABLE OF CONTENTS  NEXT