As a Perl developer of 10+ years I concur with all the positive things said, for quantitative analysis Perl is one of the best high-level general purpose programming languages out there. I would say the term "scripting" language is a misnomer, as Perl and all other high-level interpreted languages can do anything nowadays and are as general purpose as Java or C# for example.
Just want to reply to some comments made about shortcomings, for OO programming the comments made are not correct anymore. Yes the old built-in OO functionality in the core language was somewhat limited but no one in the Perl world really uses the built-in OO functionality anymore, we all use Moose and I would recommend learning it to anyone. Moose includes static typing and very nice parameter passing as well which is a must in larger projects. Please see
http://moose.perl.org/,
http://search.cpan.org/dist/Moose/ , and an overview of all the major add-ons
http://search.cpan.org/search?query=MooseX::*&mode=dist . Perl's Moose OOP is much better than
Python's OOP and you will find many references to this on the web.
For Perl being ugly unreadable code this is a completely false statement. Perl, unlike
Python, gives you so much power to do things in different ways, and the saying goes "with great power comes great responsibility". Bad programmers will write bad unreadable code in any language, as a
Python programmer as well I've read quite a bit of
Python code that is horribly written. Since Perl allows for a lot of flexibility a programmer coding teams must take a bit more care to apply across the board coding standards. Please have a look at the book "Perl Best Practices", which is the official Perl book for coding standards/guidelines, and you can use Perl::Critic
http://search.cpan.org/dist/Perl-Critic/ and Perl::Tidy
http://search.cpan.org/dist/Perl-Tidy/ for code standards analysis and clean up based on the standards laid out in the book.
For UI development in Perl I would recommend WxPerl, see
http://wxperl.sourceforge.net/ and
http://search.cpan.org/dist/Wx/, its the best cross-platform UI development tool for desktop applications. A great example of a GUI application written fully in Perl using WxPerl is the Padre IDE see
http://padre.perlide.org/ and
http://search.cpan.org/dist/Padre/ . Padre is in my opinion the best IDE for Perl development and I use it everyday. A good alternative would be the Eclipse platform with the EPIC plugin.
As for Perl being slower than C or
C++, this is true of any high-level interpreted language including
Python, PHP, Ruby, etc. All of these programming languages including Perl are written in C and as one of you said they are much easier to use as they abstract away so many things like pointers and memory allocation but you pay a price in performance. Perl is in general faster than
Python, PHP and Ruby in head-to-head comparisons and you will find multiple references to this on the web.
One thing that is sometimes overlooked is that If you are working on a programming project where you need speed, Perl offers many ways to incorporate C or
C++ code for the parts where you need more performance. See Inline::C, Inline::CPP, Perl XS, Perl XS++.
Python has similar facilities. I've used Perl with these interfaces and performance will increase many fold while you still write most of your code in Perl so you develop faster than doing everything in C or
C++.
The biggest "killer app" for Perl is CPAN, with over 20,000 libraries you will find a library to do almost anything. There are just so many rock solid recommended ones I can't list them all. If anyone has a question about the best library for a certain task I would be more than happy to help.