Perl 101: Things Every Perl Programmer Should Know.


Perl, perl, PERL

"Perl" is the language.

perl is the compiler on disk.

PERL is wrong.

Perl is not an acronym

The backronyms "Practical Extraction and Reporting Language" and "Pathologically Eclectic Rubbish Lister" came along after the name was created.

There Is More Than One Way To Do It.

The Perl motto is spelled TMTOWTDI, and pronounced "Tim Toady".


Larry is Larry Wall, inventor of Perl and its representative figurehead. He mostly lives in Perl 6 land these days, but he still makes important contributions to Perl 5.


Randal is Randal Schwartz, owner of one of the largest Perl consulting and training businesses, Stonehenge. He also takes time to help newcomers on IRC and in other forums.

Larry and Randal are also the primary authors of Programming Perl.


Damian is Damian Conway, eccentric evil genius and master of Perl 6. The book Perl Best Practices has been his seminal work, inspiring people to improve their code writing.

Laziness, Impatience, Hubris

The three virtues of a programmer: Laziness, Impatience, Hubris.

The lazy programmer will reuse whatever they can to get their work done. This virtue leads to code reuse by encouraging code to be written only once.

The impatient programmer will use whatever is available to them to get the job done quicker, and will use the machine for tasks they don't want to do manually.

The programmer with hubris will write their code efficiently, cleanly and readably, so that it is something they can be proud of.

Perl is built on these values.


Do What I Mean is closely related, but implies an intelligence in the machine that isn't there.


Do The Right Thing

Perl tries to DTRT, where the Right Thing is often as close as possible to DWIM.

script and program

Perl programs are often called "scripts", similar to a Windows batch file, or a Unix shell script. They're not. Perl programs are programs.

Perl has the heritage of being called a "scripting language", especially since it became so wildly popular in the 1990s when "web scripting" helped drive the birth of the Web. However, Perl is every bit as much of a programming language as Java or C++ or Ruby or COBOL or any other language you can name. To call it a "scripting language" is to deny its power, flexibility and elegance.

Languages such as Perl, Python, PHP and Ruby that are lumped under the second-class name "scripting language" should more properly be called "dynamic languages." Learning to think of Perl as a programming language will help you appreciate the power of Perl, and help elevate Perl's status where it belongs.

Want to contribute?

Submit a PR to

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.