in reply to Tricking Our Egos

The easiest trap to fall into when trying to figure out what's wrong with a piece of code is to look for all the things that are right with it. It goes something like this: "Okay, if $i is zero we'll get through this loop okay, ... the substitute will change the 'barf' in $string to 'arf' ... yeah ... and when it gets here it should print 77 ... right." This mental dialog always ends with, "Well, shoot, that should work!" If I ever find myself saying this, I know I need to back up and realize, "Hey, it doesn't work, that's why you're going through this in the first place!" That's usually enough to kick me into a different groove.