Perl makes a good first language for several reasons:
- It grew out of a need to parse text -- it's built closer to the way people speak than the way machines process information.
- It's forgiving, quick to develop, and the write-compile-debug cycle is short, thanks to the interpreter/compiler.
- It's expressive and powerful, but useful even with a small subset of commands.
- It encourages good programming practices -- if you want it to.
- There's more than one way to do it.
It can be tricky for a few other reasons:
- It's tied to Unix by some syntax and other design decisions. That's a plus, in my opinion, but unless you've learned or are learning Unix as well, some of the higher-powered features of Perl will be harder to understand.
- It's not a purely functional or object oriented language (thank goodness). That kind of flexibility might make it difficult for someone to learn a new language.
- There are few enforced disciplines. If you start strictly (pun intended), you'll probably do okay, but if you cultivate lazy habits, you'll have to unlearn them later. More bondage-oriented languages (er... the ones with strong typing and forced indentation rules :) have some initial pain in this area, but rapidly bludgeon you into submission.
Okay, only the first of those possible cons has much merit. I do believe that learning a handful of languages will make you a better programmer afterall -- and at least one of those should be very low level, either C or some form of assembly.