Here are some thoughts I had while reading through this.
It's all about productivity.
If you have programmed expertly in Perl for 10 years, in Python for 10 years, and in Java for 10 years, then you'll probably write your program in Perl because you'll complete the program faster, the program will have fewer lines of code, and the language will stay more out of your way.
If you are not an expert in Perl, Python, or Java, and you have to choose one of those languages, then I recommend that you choose Python. You'll become proficient with Python a lot faster than you will with Perl and Python is far more concise than Java.
The following line of Perl code works exactly as you see it. You don't have to wrap it in a method or a function or a class. You don't have to compile it separately. It doesn't need any external modules. You can just run it.
@a= grep {/9$/} map {$_ * $_} (1..50);
say scalar(@a), ": ", join(", ", @a);
The above code counts the numbers between 1 and 50 (inclusive) that have squares that end in the number 9. It then prints to the standard output the count followed by the comma-separated square values. For someone who's been programming Perl a long time, the code is actually easier to follow than the English description in the two sentences that precede this one.
I'll leave the Java version, laden with boiler-plate code, as an exercise for the reader.
To some degree, the success of Perl probably relates to the extremely high productivity of a Perl expert compared to the productivity of a C/C++/Java/C#/Etc expert. This productivity translates into a real advantage for businesses. Python and Ruby also give developers enormous productivity gains compared to other more wordy and more restrictive languages. And they're much easier to master than Perl.
--Donnie