I'm sure that you will get many good responses on this ... and I second the motion that you should review the existing responses under other topic-names.
One of the more easily-overlooked requirements, especially in the ubiquitous “shared web-host” environment, is deployment independence. The fact that you have deployed n applications, and have just updated one of them, should not affect the other (n-1). Directives like use lib make that much easier. And so does the nature of the language itself, being divided into packages and modules that you mix-and-match.
As you observe, Perl is fundamentally a platform-independent language, so any methods that are used have to work on all platforms. Here, the “trick” is that all of that nifty platform-independent stuff must become platform-dependent somewhere, and that “somewhere” is in the form of so-called XS code. You need a compiler in order to do that ... easily done (taken for granted, in fact) on Linux, but not-so on Windows.
(This, of course, being why “friends don't let friends drive Windows.”) ;-D
As far as the rest of it goes, many of these topics really do fall easily under the umbrella of “deployment,” because quite frankly I defy you to make any language or operating-system “easy” without a good installer ... and yet, once you do so, “the language being used” isn't such a critical factor anymore.