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.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||