in reply to Avoiding silly programming mistakes
I see a lot of good advice here already; the perl dogma (strictures etc.), code reuse (CPAN or your own), small chunks and early testing. However, there is one thing I don't see here yet.
The absolute best tool for catching all kinds of mistakes that cannot be seen by syntax checkers, interpreters or any other automatic tools is.....
.... another programmer.
Yes, I'm talking about extreme programming. It may be hard to convince the corporate overlords that paying two people to do the work of one is worthwhile but the time saved in having a second set of eyes watching AS YOU CODE is incredible. You can always find new and unique ways to make errors that are beyond the scope of any automated checking tool. It takes another human brain to understand the ingenious ways you've screwed things up. And because they are there with you, in the moment, following along with your thinking as you construct the code, they do a much better job of catching your mistakes than they could ever do in an after-the-fact code review.
You may never be afforded the opportunity to code this way but if you are, it's worth it.