Why Perl is a Valid Choice


Why Perl is a Valid Choice

We often hear the comment, "No IT Manager ever got fired for picking Java." Why is this? Java is considered a safe choice because it can solve many problems and it has sufficient market penetration that it currently is not viewed as a risky choice.

I compiled the following in an attempt to show that no IT Manager should ever get fired for chosing Perl either. I am not trying to write a justification for why Perl is the best choice for any given IT task. Rather, I believe the evidence listed below shows that it is a perfectly acceptable choice and should be considered on even ground with other possibilities.

Given this information, a responsible IT Manager should proceed to select a language or programming platform based on things that actually matter like the task at hand, the budget, the current skills of the target coders, the current environment, etc.

Aptitude for the task

  • Perl runs basic CGI and is the language that made CGI ubiquitous on the web.
  • mod_perl is an advanced implementation of Perl that runs in the Apache web server. It provides extremely fast performance and full access to Apache internals via Perl.
  • DB interaction: Perl provides an excellent interface to nearly all available databases, along with an abstraction layer that allows you to switch databases without re-writing all of our code.
  • re-usable code architecture (modules, OO, etc.): Perl is architected to allow and encourage re-use. The core block of re-use, the module, makes it very easy to leverage business logic across platforms in web applications, batch scripts, and all sorts of integration components.
  • CPAN, the Comprehensive Perl Archive Network, is one of the largest repositories of free code in the world. If you need a particular type of functionality, chances are there are several options on the CPAN, and there are no fees or ongoing costs for using it.
  • Multi-use: Perl can be used to develop Web apps, batch processing, data analysis and text manipulation, command-line utilities and apps, GUI apps.
  • Multi-language integration: can interact with C, C++, Java, etc. from within Perl code.
  • Multi-platform: Perl runs on Linux, MS Windows and all of the platforms listed here: http://www.cpan.org/ports/

Market penetration

The main point of these stats is that Perl has a large and broad user community. With any technology you choose, you don't want to be the only one using it. These numbers show that Perl is still widely used for web development, among other things, and the user community is very active.

Notable Perl users

Perl is used by Amazon, Google, Yahoo, and Ticketmaster.


Perl, Apache, and related technologies are open source and free. On-going overhead cost to vendors for code that continues to run is $0.

Open Source

  • You can look in and modify perl modules.
  • You can look in and modify perl itself.
  • Perl has a very strong user community and this is the primary avenue for support.
  • You can purchase support or consulting from multiple sources because any qualified Perl coder can look in the code and investigate problems.

Book sales

Recent Bookscan stats show Perl at roughly three times the number of sales as Python, ten times as Ruby, and half as many as PHP.

O'Reilly Media is very much driven by numbers and they felt the Perl book market was strong enough that they published 4 new Perl titles last summer alone. That is a large number of books for a relatively small tech publisher to devote to a single language.

Job Openings

There are many sites on the internet that post Perl jobs and they all more or less reflect the numbers listed at http://jobs.perl.org/about/stats

Some other jobs listings:

Active development

Perl continues to be actively developed.

Release dates are available here: http://perldoc.perl.org/perlhist.html

Perl is also very mature and stable, and has been running on large production systems for years.

Other sources for Perl information

Another summary of Perl's apptitude: http://perltraining.com.au/whyperl.html


This document is licensed under a Creative Commons Attribution 2.5 Licence (http://creativecommons.org/licenses/by/2.5/) and is copyrighted © 2006 Jim Brandt.