Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re^2: Is Perl the right language for a large web application?

by Zzenmonk (Sexton)
on Apr 24, 2013 at 07:48 UTC ( #1030295=note: print w/ replies, xml ) Need Help??

in reply to Re: Is Perl the right language for a large web application?
in thread Is Perl the right language for a large web application?


I am writing PERL web applications for over 10 years now. A video one of them is here:

My way of building them

Install an Apache versrion >2, mod_perl, DBI/DBD, CGI, CGI::session, create a set of directories: cgi, css, js, lib, img and tmp, RTFM about PERL and CGI ( and build your application. Scale out with the Apache features (mpm and cluster), set up your database as a cluster and your corporate application is alive.

The way to build them which pleases your manager

Install Catalyst. During the time you will read the Catalyst books, my application will be in production. However Catalyst has a lot of tools and your boss will definitely like it. It might even become strategic.

The result

In both case you will have with a state of the art application, which will be built at reasonable, if not record breaking costs. Provided you write proper code, your application will run over 10 years without any problem.

Major projects written in PERL

Switzerland, state of Geneva, Justice department: This department is using PERL to realize a web application to manage all court procedures. The project manager introduced it to me and is happy about his choice regarding PERL. It is the biggest PERL project I know.

Metadot: Metadot is portal written in PERL. At the time I used it, it did not work under mod_perl and had a lousy performance. It is however a good portal.

Amanda: Amanda is the backup system I use. It is an open source software delivered with most Linux distributions. It is also the example of what you should not do. The PERL code was badly written and issue arose as PERL 5 was introduced. If I remember it correctly foreach $tmp @list is legal in PERL 4 but not PERL 5. So Amanda was not working any more! Accordingly avoid cheap code in PERL! In other words: best practices are a must!

Alternatives listed in your post.

Ruby: Forget it. The only time I had to use Ruby the code did not work because of deprecated method usage. Such a language can definitely not be used at corporate level.

Python: No clue! Never used! Notice I heared of Python allready in 1993! In fact it was released in the late 1980s!

The problems

You state the problem yourself. PERL is badly perceived mostly because too much lousy code was written with it and security issues appeared. An article I read in 2000 about it was cited to me again during a security review in 2008! Now make a guess of your major issue: the management:

  • Management does not like PERL because they are not a lot of programmers around.
  • Management does not like PERL because the corporation next door does not use it.
  • Management does not like PERL because you can write lousy code with it.
  • Management does not like PERL because they can not sue someone in case of failure.
  • Management does not like PERL because they do not even know about it.

These are your problems and the problems I faced and still face after 15 years of freelance consulting for major international corporations. Notice a multi with over 40'000 employees did not want to used it because PERL is open source, but it was installed on the corporate laptop I got as part of the operating system!

Good luck


The best medicine against depression is a cold beer!
  • Comment on Re^2: Is Perl the right language for a large web application?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1030295]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2016-07-25 04:24 GMT
Find Nodes?
    Voting Booth?
    What is your favorite alternate name for a (specific) keyboard key?

    Results (222 votes). Check out past polls.