"What makes programming languages are suitable or unsuitable as introductory languages? Which languages are better learnt first and at which order? And why what the masses think is the most suitable introductory programming language is not in fact that. This paper examines several approaches to which programming language is the best, and afterwards gives several useful relations for which languages should come first. Finally it gives a final verdict, defends it and then gives some other good food for thought."

Readability and maintainability are paramount concerns. That's why "here's your predecessor's directory of Perl scripts" gives one of the most sinking feelings in the business. Sad thing is, there are a lot of sloppy programmers out there, and Perl does less to limit their damage when you're having to work collaboratively.

I for one had to reuse someone else's library once, and then had real time wondering why my previously tested code was breaking - it turned out that Perl allows a stand-alone next statement inside of a function to affect loops in the calling function. Why would any language do this?! What C++ and Python take pains to do is encapsulate and define interfaces, even if not in the OO sense, and side effects like that disqualify Perl as a language for larger projects with multiple programmers.

Maybe Perl 6 will clean things up a bit, but students need to learn how you successfully write reusable code when the line count goes over 10,000, and they'll do that better when they don't have to fight the language. You're talking about a mindset where the default behavior is all variables global unless declared otherwise, variables created on the fly unless declared otherwise - "my" and "strict" shouldn't have to be explicit.

Perl's not a bad language. It just grew too quickly without careful planning for how it would scale. That's why I think it needs to come after Python or C++ or Lisp. If you're going to code with less type safety, you should already have learned good discipline elsewhere.