There are many programming practices that I dislike, but this one is in my personal top-ten of horrible things I don't want to discover in source code I have to maintain :
Boolean values coded as strings (for example, 'Y' and 'N') -- so that they always evaluate to true in boolean context.And not only because it's ugly, but also because it's almost impossible to rewrite properly. This remark being true for Perl, C, and all other languages that haven't a built-in boolean type.