" ("0 but true") evaluates to true in a boolean context but will still equal zero if you do a numeric test. So you don't have to do a string comparison against '0E0'. A simple
would work as you'd expect (for cases where you're testing), and forcing it to be numeric could easily be done just by adding zero (
.