• Intel
  • Microsoft
  • Google
  • Sun Microsystems
  • BT
  • IBM
  • Yahoo! Inc.
  • Zimbra
  • Atlassian Software Systems
  • Disney
  • EnterpriseDB
  • Etelos
  • Ingres
  • JasperSoft
  • Kablink
  • Linagora
  • MindTouch
  • Mozilla Corporation
  • Novell, Inc.
  • Open Invention Network
  • OpSource
  • RightScale
  • Silicon Mechanics
  • Tenth Planet
  • Ticketmaster
  • Voiceroute
  • White Oak Technologies, Inc.
  • XAware
  • ZDNet

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at scordesse@oreilly.com.

Media Partner Opportunities

Download the Media & Promotional Partner Brochure (PDF) for more information on trade opportunities with O'Reilly conferences, or contact mediapartners@oreilly.com.

Press and Media

For media-related inquiries, contact Maureen Jennings at maureen@oreilly.com.

OSCON Newsletter

To stay abreast of conference news and to receive email notification when registration opens, please sign up for the OSCON newsletter (login required).

Contact Us

View a complete list of OSCON 2008 Contacts

Perl Worst Practices

Perl, Tutorial
Location: Portland 252 Level: Intermediate
Average rating: ****.
(4.70, 46 ratings)

This tutorial explores a highly sophisticated (and heavily obfuscated) Perl program named SelfGOL: a transdimensional, self-aware, viral, software meta-quine.

The SelfGOL program can:

  • self-replicate by printing its own source code,
  • rewrite other Perl programs to allow them to self-replicate their own source code too,
  • detect and report the small number of Perl programs that are not rewritable in this way,
  • transform itself or other Perl programs into cellular automata of arbitrary size and play Conway’s “Game of Life” with them,
  • animate any short text as a cycling marquee banner.

SelfGOL accomplishes these feats in under 1000 bytes of standard Perl, without importing any modules, and without using a single if, unless, while, until, for, foreach, goto, next, last, redo, map, or grep.

To do all that, it relies on some extremely muscular programming techniques, and makes use of many lesser-known “features” of Perl. This talk explores both these aspects of the program, using them to illustrate many important Software Engineering principles…mainly by ironic counter-example.

You’ll laugh; you’ll cry; you’ll groan in agony; in three hours you’ll become a sadder but wiser Perl programmer.

Photo of Damian Conway

Damian Conway


Damian Conway is an internationally renowned speaker, author, and trainer, and a prominent contributor to the Perl community. Currently he runs Thoughtstream, an international IT training company that provides programmer training from beginner to masterclass level throughout Europe, North America, and Australasia. Most of his spare time is spent working with Larry Wall on the design and explication of the Perl 6 programming language. He has a PhD in Computer Science and is an honorary Associate Professor in the Faculty of Information Technology at Monash University, Australia.

OSCON 2008