The A-Z of programming languages: Perl
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.
This time we chat with Larry Wall, creator of the Perl programming language and regarded as the father of modern scripting languages.
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
Essential JavaFX
Get started building rich Web apps quickly with an introduction to the power of JavaFX key features -- scene node graphs, nodes as components, the coordinate system, layout options, colors and gradients, custom classes with inheritance, animation, binding, and event handlers.Enter now!
The Nomadic Developer
Consulting can be hugely rewarding, but it's easy to fail if you are unprepared. To succeed, you need a mentor who knows the lay of the land. Aaron Erickson is your mentor, and this is your guidebook. Enter now!













Thanks for the interview
Thanks for the interview.Otherwise some suggestions for questions in the next interview...
1.) Perl vs. PHP for web applications and for CMS or WCMS platforms, how or what did we do wrong in making Perl monks thinking that PHP is more powerful then Pel when it comes to usage and development of those.
2.) Perl6: What is that? Would that be the post post... modern language? Or how would you define it?
3.) What were the true advantages of having a genius linguist as your self (Larry Wall) writing this language, comparing to other computer languages.
Thanks!
On Elpeleg
WebAPP Open Source Perl CMS
Microsoft Exams: 70-270,
Microsoft Exams: 70-270, 70-652, 70-630, 70-431, 70-642Cisco Exams: 642-426, 642-524, 642-164
IBM Exams: 000-015, 000-331, 000-210
CompTIA Exams: sy0-101, 220-601
VMware Exam: vcp-310
EMC Exam: e20-001