in reply to An idiom for selecting true, false, or undef.

My best counsel on this point is:  

SWYMOD:   Say What You Mean Or die

In this way, when you do “return something,” what you return is the most meaningful and descriptive response that you could have returned. And if not, you do not return at all... thus forming a useful social-contract that, if your function does return a value, that value can be relied-upon without further testing of return-values and so forth. Exception-handling blocks are efficient and cheap. (Obviously they cannot be used in all cases, e.g. for historical reasons.)