in reply to Re: Functions that return nothing, nada, failure...
in thread Functions that return nothing, nada, failure...

I vaguely remember the meme "use return with no arguments to return false to any context" as received wisdom, but I can't find any such citation.

From perldoc -f return:

If no EXPR is given, returns an empty list in list context, the undefined value in scalar context, and (of course) nothing at all in a void context.

:-)

Replies are listed 'Best First'.
Re^3: Functions that return nothing, nada, failure...
by tkil (Monk) on Jun 01, 2004 at 20:03 UTC
    [snarky quote from perlfunc omitted]

    Ha ha. :)

    Unfortunately, it's not clear that this is an endorsement of using the naked return to signal false or failure: it is only a statement that it will, in fact, return something which will be interpreted as false by perl in whatever context it is called from. The question at hand, though, is whether there is any argument (either from authority or from a rational basis) for declaring the naked return as the "best" way to return false.

    At the least, I would argue that using it fits the principle of least surprise. (I wouldn't want to have a list that explicitly returns undef suddenly be interpreted as "true" just because I changed the context I was returning it into.)

    I actively dislike the solutions recommended so far (always return either undef or (), and then document it). Unless there is a very specific reason to do otherwise, I would prefer that people just use the naked return and let the calling context figure out what to do with it.