The 0th Annual Obfuscated Perl Contest Results

Felix S. Gallo

First, I'd like to say that this contest was an amazing and therefore highly regrettable success. Yes, some members of the elite judging team are now trying to fit square pegs into round holes in a mental rehabilitation ward, and one of the judges was last seen washing his hands obsessively and muttering something about never being able to get clean again, but they gave themselves heroically in the line of duty.

The people to really worry about are the various entrants. These seriously warped individuals' efforts went far beyond what we thought we'd get with our pleasant little contest. No, they each created code so vicious, so grotesque, that if the U.S. State Department were to find out about obfuscated Perl code of this caliber, they'd immediately declare it an unexportable munition. Actually, some theorize this has already happened. Pay no attention to the front cover. Onwards.

In the spirit of true obfuscation, upon receiving the complete set of entries, we decided to modify the rules of the contest. Every entry was considered for every category - and in fact, some did well outside their chosen category.

Besides the best medicine for nausea, if there's one thing the judges learned from this contest, it's that there is much to learn from this contest. Each of the entries demonstrated from one to ten hideously powerful and educational Perl constructs; in terms of time spent, there can be few better methods of learning how Perl works than examining these expert-crafted hacks. We recommend that anyone who wants to advance their Perl knowledge download these entries and try to decipher them. The especially masochistic and adventuresome may wish to stop reading right here; some of the below passages will contain giveaways.

Last chance to stop reading before the awards are presented and the code is deconstructed...

Still with us? Great.

Best Four Line Signature

3rd Place Tie: Krishna Sethuraman, Sriranga Veeraraghavan. Krishna did a good job of hiding the index function which extracted 'Just another Perl hacker' from a string. Extra bonus points for using the @bar{@array} feature. Sriranga's code, studded with dollar signs, won high aesthetic formatting marks.

2nd Place: Poul Sørensen. Poul's code was fairly straightforward; at least one of the judges managed to understand what it would do without running it. However, it's a clever and cute hack which runs a capital letter up and down the lower-case string 'the Perl journal'.

1st Place: Robert Klep. Robert's code wasn't highly obfuscated; most of the difficulty of reading it came from the fact that it's got a lot of math in it. However, it won big in the amusement department by calculating and printing out the Mandelbrot set in ASCII in only 2.5 lines.

Most Powerful

3rd Place: Robert Klep, for his Mandelbrot set generator.

2nd Place: Gordon Lack. Here's Gordon's entire program:

#!/usr/bin/perl l -w015l12pi.bak. Which, as you can plainly see, converts Mac-format text files into UNIX-format text files.

1st Place: Russell Caton, who managed to squeeze a clever program which searches through your (optionally unordered) password file to find the first unused UID into only 1.5 lines of Perl. It's a genuinely useful piece of code for sysadmins disguised as line noise.

Most Creative

3rd Place: Stephen McCamant. Stephen's obfuscation is mostly in the math, but he gets great style points for having the last statement be goto a and for the execution of the program, which calculates and prints out pi.

2nd Place: Steve Lidie (see the 'The Perl Journal' category, below).

1st Place: Bob Sidebotham, whose submission was unbelievably hilarious. We recommend you go check out the original version. Needless to say, his program does not use pi as it would have you believe, nor does it compute anything having to do with circles, nor are the comments true in the slightest. It's a big, majestic lie - its output is THE PERL JOURNAL spaced across the screen in five-character-high letters. Bob wins this category hands down, for apparently discovering that a higher power, á la Carl Sagan's Contact, has hidden the name of the best programming journal ever in a fundamental mathematical constant.

Best 'The Perl Journal'

This award goes to the best program which produces the words 'The Perl Journal'. There were some scintillating gems in this category, which made picking winners very difficult.

(Dis-)Honorable Mentions: Poul Sørensen for his neat streaming banner hack and Krishna Sethuraman for an elegant little haiku (reminiscent of the bad old days of Perl poetry) which compiles and runs.

3rd Place: our own Steve Lidie, who threw the proverbial kitchen sink of obfuscation at the problem, including __DATA__, random numbers, cunningly commented code which has nothing to do with the solution, and a trashed out string which gets transformed into Perl code and evaluated. His effort was not only gorgeous, but awe-inspiring.

2nd Place: Bill Pollock, whose code contains a big 'The Perl Journal' mural formatted prettily in comments. The code quickly reads itself in and uses characters from inside the comments to generate 'The Perl Journal'. While the code isn't highly obfuscated, the idea of a program reading itself and then using a mural to make a string is pretty nifty.

1st Place: Gisle Aas. Gisle's entry only serves to strengthen our deepening suspicion that something is seriously amiss in Norway. Gisle's entry is so magnificently obfuscated that it's in a class by itself; in only 143 characters, Gisle manages to confuse Perl's namespace, Perl's notion of numbers, use the tenth day after the epoch began, and put together a tour-de-force substitution which one of the judges still doesn't understand. A hearty congratulations to both Gisle and his future therapist. With this entry, Gisle goes on to win the coveted Best of Show award and a mandatory seat on next year's judging committee.

Congratulations also go out to all the winners, who each richly deserve their titles and the trophies en route, and also to all who participated. We fully expect that next year, not only will all of the judges return to a state of mental competency, but the contest will be even fiercer!

Felix Gallo and Jon Orwant

The Official Highly Trained 0th Obfuscated Perl Contest Judges