graphic7: Perl's language is a little obscure because of its similarity to C/C++. The purpose of most scripting languages is to be able to write quick, easy code in order to perform simple tasks. Perl is built on (or from) existing languages and tools but learning all of these tools from scratch is difficult. Sed, Awk, C, Unix Shell, etc are included as tools and language constructs in Perl which for a C programmer are easy enough to pick up. For a non C programmer or someone who has never used regular expressions (Perl's main benefit as a scripting tool) it's tough--no doubt about it. If you are not proficient with Unix programming then Perl has a very steep learning curve. This is a know and much noted fact about this language.
Other scripting languages like Python and Ruby and JS, and a few other languages are more direct. These languages are easier to pick up. Heck, JS is very easy to learn and useful on M$ platforms if the script host is enabled. Ruby and Python are very easy to learn and are OOP which can be extended to Java and C++ when someone wants to move to a compiled language.
All in all, Perl has its place but IMO its place is not as a starter language. Trying to learn Perl would be discouraging to any novice to lower intermediate programmer and should be learned later. Learn Perl when you NEED to parse files on a *nix server. Learn Perl when you need to write *nix scripts.
Finally, Perl's main usage is in *nix environments. Portability becomes a problem on Windows boxes because to use a Perl script you have to first "as you stated" ensure the system has all modules available. Python OTH can be compiled just like Java and packaged with an interpreter. Not a perfect system, but much, much more portable.
My 2 cents.