use strict; (A year ago, I wouldn't have said so, but -w and strict have become very close friends :)
Use modules when appropriate (but not always - I still prefer using simple regexes)
Think about modularity. Even for very simple tasks, I tend to make an OO module these days, and it really helps to clarify my code and to refactor where possible
Order is important. I use guards (return unless ...;) instead of nested ifs (if (...) { ... } else { return }) if possible