Whether you think of it as “Practical Extraction and Report Language” or “Pathologically Eclectic Rubbish Lister” (that’s my choice), we internet app developers owe a lot to Perl. It may have started as a little language that let its creator Larry Wall automate administrative tasks, but in the 1990s, its strong text-manipulation capabilities made it well-suited for producing dynamic web applications. Its success in this arena earned it the sobriquet “The Duct Tape of the Internet” and it led the wave of “scripting languages” — of which my current language of choice, Ruby, is a member — which function as the “P” in the LAMP stack. I think of Perl in the way I think of all those music lessons I had to take as a kid: it drives me crazy, but I wouldn’t be where I am without it.
December 18, 1987 is generally regarded as the day that Larry Wall first released Perl via the newsgroup comp.sources.misc. Here’s an excerpt from Larry’s description of the language, taken from his manpage:
Perl is a interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It’s also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). It combines (in the author’s opinion, anyway) some of the best features of C, sed, awk, and sh, so people familiar with those languages should have little difficulty with it. (Language historians will also note some vestiges of csh, Pascal, and even BASIC-PLUS.) Expression syntax corresponds quite closely to C expression syntax. If you have a problem that would ordinarily use sed or awk or sh, but it exceeds their capabilities or must run a little faster, and you don’t want to write the silly thing in C, then perl may be for you. There are also translators to turn your sed and awk scripts into perl scripts.
Happy 20th birthday, Perl, and thank you Larry Wall (even though your language often made me want to hurl my machine out the window)!