Way back in 1986, Larry was a systems programmer on a project that was 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 . [ 6 ]
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 bi-coastal 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.
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, 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 a graphics 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, OK. 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.[ 7 ] The rest, as they say, is history.[ 8 ]