Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experiences maintaining Bash, Bjarne Stroustrup of C++ fame and to Charles H. Moore about the design and development of Forth. We've also had a chat with the irreverent Don Woods about the development and uses of INTERCAL, as well as Stephen C. Johnson on YACC, Luca Cardelli on Modula-3, Walter Bright on D, and more recently, Simon Peyton-Jones on Haskell.
What prompted the development of Perl?
I was scratching an itch, which is the usual story. I was trying to write reports based on text files and found the Unix tools were not quite up to it, so I decided I could do better. There was something missing in Unix culture — it was either C or a shell script, and people see them as opposites in one continuum. They were sort of orthogonal to each other and that is the niche Perl launched itself into — as a glue language. Unlike academic languages, which tend to be insular, I determined from the outset I was going to write Perl with interfaces.
Only later did it turn into a tool for something that was not anticipated. When the Web was invented they needed to generate text and use a glue language to talk to databases.
Was there a particular problem you were trying to solve?
You can tell the other problem by the reaction Perl got from the die hards in the Unix community. They said tools should do one thing and do them well. But they didn't understand Perl was not envisioned as a tool so much as a machine shop for writing tools.
How did the name Perl come about?
I came up with the name as I wanted something with positive connotations. The name originally had an "a" in it. There was another lab stats language called Pearl, so I added another backronym. The second one is Pathologically Eclectic Rubbish Lister.
Do you ever find yourself using the “backronym” Practical Extraction and Report Language at all?
It is meant to indicate that there is more than way to do it, so we have multiple backronyms intentionally.
Were there any particularly hard/annoying problems you had to overcome in the development of the language?
The annoying thing when you're coming up with a new language is you can't really design it without taking into account the cultural context. A new language that violates everyone's cultural expectations has a hard time being accepted. Perl borrowed many aspects out of C, shell and AWK which were occasionally difficult to reconcile. For example, the use of $ in a regular expression might mean match a string or interpret a variable.