Perl was originally written by Larry Wall while he was working at NASA’s Jet Propulsion Labs. Larry is an Internet legend, known not just for Perl, but as the author of the UNIX utilities rn, one of the original Usenet newsreaders, and patch, a tremendously useful tool that takes a list of differences between two files and allows you to turn one into the other. The term patch used for this activity is now widespread.
Perl started life as a “glue” language for Larry and his officemates, allowing one to “stick” different
tools together by converting between their various data formats. It pulled together the best features of several languages: the powerful regular expressions from sed (the Unix stream editor), the patternscanning language awk, and a few other languages and utilities. The syntax was further made up out of C, Pascal, Basic, Unix shell languages, English, and maybe a few other elements along the way. While Perl started its life as glue, it is now more often likened to another handy multiuse tool: duct tape. A common statement heard in cyberspace is that Perl is the duct tape that holds the Internet together.
Version 1 of Perl hit the world on December 18, 1987 and the language has been steadily evolving since then, with contributions from a whole bunch of people (see the file AUTHORS in the latest stable release tarball). Perl 2 expanded regular expression support, while Perl 3 enabled the language to deal with binary data. Perl 4 was released so that the “Camel Book” (also known as Programming Perl by Larry Wall [O'Reilly & Associates, 2000]) could refer to a new version of Perl.
Perl 5 has seen some rather drastic changes in syntax, and some pretty fantastic extensions to the language. Perl 5 is (more or less) backwardly compatible with previous versions of the language, but at the same time makes a lot of the old code obsolete. Perl 4 code may still run, but Perl 4 style is definitely frowned upon these days.
At the time of writing, the current stable release of Perl is 5.10.1, which is what this book will describe. That said, the maintainers of Perl are very careful to ensure that old code will run, perhaps all the way back to Perl 1—changes and features that break existing programs are evaluated extremely seriously. Everything you see here will continue to function in the future.
We say “maintainers” because Larry no longer looks after Perl by himself—a group of “porters” maintains the language and produces new releases. The perl5-porters mailing list is the main development list for the language, and you can see the discussions archived at www.xray.mpe.mpg.de/mailing-lists/perl5-porters. For each release, one of the porters will carry the “patch pumpkin”—the responsibility for putting together and releasing the next version of Perl.