undef silently becoming "" or 0 is definitely attractive, but to me far from worth going without warnings. I don't find the uninitialized warning at all pointless; it almost always indicates a bug (sometimes a typo, but sometimes a logic error.) The extra work to avoid the warning in correct code is trivial and hard for me to get wrong.
in reply to Re^3: Best practices, revisited
in thread Best practices, revisited