Many Perl programmers are linguistically adept; the expressivity and flow of our language attracts people who enjoy the written word. Perl programmers also tend to have a lot of free time from getting their jobs done so quickly, and so it's natural that they sometimes blend Perl and wordplay. One common manifestation of this whimsy is Perl poetry: a poem that also happens to be a functioning program.
Our Obfuscated Perl Contest is ugly and evil. We know this, and revel in it. To compensate for encouraging these most unpoetic programs, we hereby present out first Perl Poetry Contest, to be judged by Perl poet Kevin Meltzer. This is a chance to show the world just how beautiful Perl can be.
Perl Poetry has been around for a decade; on April Fool's Day 1990, someone forged a Usenet posting in Larry Wall's name with four Perl poems. Sharon Hopkins, a longtime friend of Larry Wall and the Official Perl Poet, presented Camels and Needles: Computer Poetry Meets the Perl Programming Language at the Usenix Winter 1992 Technical Conference. One of Sharon's poems, listen, has even been published in the Economist and the Guardian.
More recently, this arrived in my inbox:
#!/usr/bin/perl # # asylum.pl # by Harl close (youreyes); bind (yourself, fast); while ($narcosis) { exists $to($calm); not calm; } accept the, anesthesia; seek the, $granted, $asylum' and wait; stat ically; unlink and listen (in, $complicity); for (a, little) { system ("sync hronicity"); }
Note the rhyme at the end, and Harl's use of poignant imagery, wordplay, and the quadruple theme of sleep, insanity, connectivity, and socket programming. True, Harl's program doesn't do much, bit it's inspirational, and we expect to see Harl performing at a Silicon Valley poetry slam near you.
THE CATEGORIES
True poets bridle at constraints, so we won't restrict entries to any particular style or genre of poem; mail us anything you like. However, please use discretion. We don't find large binary files poetic. Here are some ideas to get you started:
- Pick a famous poem and "port" it to Perl.
- Write a Perl poem that performs a useful task.
- A Haiku, Tanka, or Limerick about Perl. Haikus(syllable pattern 5-7-5) and tankas (5-7-5-7-7) don't rhyme; limericks (9-9-6-6-9) do, in an AABBA pattern. (Also see the separate haiku contest mentioned in Damian Conway's Coy.pm article, earlier in this issue.)
- Write a program that generates poetry.
JUDGING
All poems must run without error under Perl 5.005, and entries will receive extra credit for running under the -w flag. Don't worry about whitespace, and don't try anything cheap like using comments excessively. We'll be watching. Extra points will be awarded for particular poetic styles, like iambic pentameter or internal rhyme. Whether your poem employs the pronunciations of non-alphanumeric characters(for instance, $bill as "dollar bill") is up to you.
Choosing the prizes was easy. Winners will receive Magnetic Perl Poetry Kits from Perltoys.com
SUBMITTING
Enter on or before February 20, 2000 by mailing you poem to contest@tpj.com. At the end of your poem, include the following:
Your name and email address.
An explanation of what your program does, if anything. If
your program is derived from an original poem, please include it.
Anything else you'd like us to know. For instance, if your poem requires pronouncing non-alphanumeric characters in a particular way (is # pronounced "pound", "bang", or "hash"?), say so.
Good luck!
Perl Poem: 143 Perl Poem: Object Oriented Perl
Jon Orwant is the editor of TPJ. He'd like to thank Kevin Meltzer for making him realize that poetry contests don't have to suck.