The thing I like about "0 but true" is that it is
self-explanatory; with any of the others, I'd feel
obligated to insert a comment explaining why I
was returning zero in that particular way, so that
some hapless soul a few years later doesn't pull
out hair figuring out why my code is so weird; with
"0 but true" I expect any decent Perl programmer
to be able to figure it out, because the jist of
the reason is contained in the value; assuming the
reader understands context, it'll just click. (And
if the reader doesn't understand context, he won't
be able to maintain my code anyway; I make frequent
use of context and consider it a major concept of
the language.)