|Do you know where your variables are?|
I wouldn't think to post something so blindingly obvious, but I saw two different experienced developers get bit by this in the last month.
When I put a print in to debug something I always put a delimiter (usually parentheses) around any variable I print out. It makes it clear when there are extra whitespace or newlines around your value.
In both case, the programmers were doing string comparisons against data coming from a file. In both cases there were extra spaces at the ends of lines. In both cases the attempt at debugging was to put print "$str\n" into the program.
When I suggested that they put parentheses around the variable name, they were instantly enlightened.
I developed this habit a long time ago. As Aristotle said, "Good habits formed at youth make all the difference."
For all of you saying, "well, duh" right now, I apologize for stating the obvious. If it hadn't come up twice in the last month I would never have thought to post it.
"Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."