A friend of mine writes all his code as though the -T switch was turned
on: he tests all user input, cleans the environment, so on and so forth.
Then, when he thinks he's done, he runs the code under -T to see if
there would have been problems.
This doesn't find all bugs in all code, but it appears to help---many
subtle bugs can pop up in Perl because of incorrectly checked user input.
Personally, I prefer to cut and paste the code somewhere else, (or check
it in to a branch with CVS or RCS) and rewrite what I think is incorrect.
This helps me find stuff like testing for equality with `=' or `eq'
where I should have used `=='.