Chapter 27. Perl Culture
Contents:
Perl Poetry
This book is a part of Perl culture, so we can''t hope to put everything
we know about Perl culture in here. We can only whet your appetite with a
little history, and a little art--some would say "very little art". For a
much larger dose of Perl culture, see www.perl.org and www.perl.com. (Larry keeps copies of all his (official) ravings at www.wall.org/~larry.) Or just get acquainted with some other Perl programmers. We can''t tell you what sort of people they''ll be--about the only personality trait Perl programmers have in common is that they''re all pathologically helpful.
27.1. History Made Practical
In order to understand why Perl is defined the way it is (or isn''t), one
must first understand why Perl even exists. So, let''s drag out the old
dusty history book....Way back in 1986, Larry was a systems programmer on a project
developing multi-level-secure wide-area networks. He was in charge of
an installation consisting of three VAXen and three Suns on the West
Coast, connected over an encrypted, 1200-baud serial line to a similar
configuration on the East Coast. Since Larry''s primary job was
support (he wasn''t a programmer on the project, just the system guru),
he was able to exploit his three virtues (laziness, impatience, and
hubris) to develop and enhance all sorts of useful tools--such as
rn, patch, and
warp.[1]
[1] It was at about this time
that Larry latched onto the phrase "feeping creaturism" in a desperate
attempt to justify on the basis of biological necessity his
overwhelming urge to add "just one more feature". After all, if Life
Is Simply Too Complicated, why not programs too? Especially programs
like rn that really ought to be treated as
advanced Artificial Intelligence projects so that they can read your
news for you. Of course, some people say that the
patch program is already too
smart.
One day, after Larry had just finished ripping rn
to shreds, leaving it in pieces on the floor of his directory, the
great Manager came to him and said, "Larry, we need a configuration
management and control system for all six VAXen and all six Suns. We
need it in a month. Go to it!"So, Larry, never being one to shirk work, asked himself what was the
best way to have a bicoastal CM system, without writing it from
scratch, that would allow viewing of problem reports on both coasts,
with approvals and control. The answer came to him in one word:
B-news.[2]
[2]That is, the second implementation of Usenet
transport software.
Larry went off and installed news on these machines and added two
control commands: an "append" command to append to an existing
article, and a "synchronize" command to keep the article numbers the
same on both coasts. CM would be done using RCS (Revision Control
System), and approvals and submissions would be done using news and
rn. Fine so far.Then the great Manager asked him to produce reports. News was
maintained in separate files on a master machine, with lots of
cross-references between files. Larry''s first thought was "Let''s use
awk." Unfortunately, the awk
of that day couldn''t handle opening and
closing of multiple files based on information in the files. Larry
didn''t want to have to code a special-purpose tool. As a result, a new
language was born.This new tool wasn''t originally called Perl. Larry bandied about a
number of names with his officemates and cohorts (Dan Faigin, who wrote
this history, and Mark Biggar, his brother-in-law, who also helped
greatly with the initial design). Larry actually considered and
rejected every three- or four-letter word in the dictionary. One of the
earliest names was "Gloria", after his sweetheart (and wife).
He soon decided that this would cause too much domestic confusion.The name then became "Pearl", which mutated into our present-day
"Perl", partly because Larry saw a reference to another language
called PEARL, but mostly because he''s too lazy to type five letters
all the time. And, of course, so that Perl could be used as a
four-letter word. (You''ll note, however, the vestiges of the former
spelling in the acronym''s gloss: "Practical Extraction
And Report Language".)This early Perl lacked many of the features of today''s Perl. Pattern
matching and filehandles were there, scalars were there, and formats
were there, but there were very few functions, no associative arrays,
and only a crippled implementation of regular expressions, borrowed from
rn. The manpage was only 15 pages long. But Perl
was faster than sed and awk
and began to be used on other applications on the project.
But Larry was needed elsewhere. Another great Manager came over one
day and said, "Larry, support R&D." And Larry said, okay. He
took Perl with him and discovered that it was turning into a good tool
for system administration. He borrowed Henry Spencer''s beautiful
regular expression package and butchered it into something Henry would
prefer not to think about during dinner. Then Larry added most of the
goodies he wanted, and a few goodies other people wanted. He released
it on the network.[3] The rest, as they say, is
history.[4]
[3] More astonishingly, he kept on
releasing it as he went to work at Jet Propulsion Lab, then at NetLabs
and Seagate. Nowadays, other people do most of the real work, and
Larry pretends to work for O''Reilly & Associates (a small company
that publishes pamphlets about computers and
stuff).
[4] And this, so to speak, is a footnote to
history. When Perl was started, rn had just been
ripped to pieces in anticipation of a major rewrite. Since he started
work on Perl, Larry hasn''t touched rn. It is
still in pieces. Occasionally, Larry threatens to rewrite
rn in Perl, but never
seriously.
Which goes something like this: Perl 1.0 was released on December 18,
1987; some people still take Perl''s Birthday seriously. Perl 2.0
follows in June 1988, and Randal Schwartz creates the legendary "Just
Another Perl Hacker" signature. In 1989, Tom Christiansen presents
the first public Perl tutorial at the Baltimore Usenix. With Perl 3.0
in October 1989, the language is released and distributed for the
first time under the terms of the GNU Public License.In March of 1990, Larry writes the first Perl Poem (see the following
section). Then he and Randal write the first edition of this book,
The Pink Camel; it is published in early 1991. Perl 4.0 is released
simultaneously; it includes an Artistic License as well as the GPL.The unveiling of the much anticipated Perl 5 occurs in October 1994.
A complete rewrite of Perl, it includes objects and modules. The
advent of Perl 5 even merits coverage by The
Economist. In 1995, CPAN is officially introduced to the
Perl community. Jon Orwant begins publishing The Perl
Journal in 1996. After a long gestation, the second
edition of this book, The Blue Camel, appears that fall. The
first O''Reilly Perl Conference (TPC) is held in San Jose, California,
in the summer of 1997. Notable events are now occurring almost daily,
so for the rest of history, check out the Perl Timeline on CPAST,
the Comprehensive Perl Arcana Society Tapestry
(history.perl.org).