Hmm. Most of the scripts I write are trivial in comparison to the stuff I've seen here. My most complicated script so far used a three dimensional hash (like $foo{'bar'}{'baz'}{'quack'}). My scripts have to be readable by other people, some of those people know a touch of Perl. Most don't.
The scripts I write are used almost exclusively on Windows, and in reality I don't think they're ever used on a Unix (or Mac) box. All of our development is done on Windows. So I can safely put in a system "dir"; call. And I know that's a horrible thing to do, so I avoid it. But I look at it this way: If you're writing text, do you translate it to every known language if you are sure that the text is only going to be read by people who speak one language?
As I mentioned, the scripts I write need to be readable above all else. Well, maybe not above functioning. But since I've pretty much turned into the Perl person around here I need to have scripts that look like something a C++ coder will grok without too much brain twisting. So anything that is too Perlish gets commented, or expanded to something a little less efficient.
And I almost never use modules. While I can guarantee that 99.999 percent of my scripts will be used on Windows, I can't guarantee that the modules will be available. So the worst case scenario entails me grabbing the code from a module and changing it so that it can be run from within my script. Properly citing references, of course.