Consider the Theory of Fun.
Perl has aspects of a fun game. There is much to master, giving a long playing time. There's more than one way to do it, so one can improve one's skills over time. I think this may contribute much to its popularity. These very aspects also make it a poor language. By doing ordinary things in a roundabout way, it's harder to do extraordinary things with it.
The lesson is that to be popular, a language should be fun. The challenge is to design a language that is both fun and productive.