in reply to Re^3: return +0
in thread return +0

Here's a nice simple example of when you might need to use it:

$ perl -e 'print (2+3)/5' 5

How on earth does that print 5? Because it evaluates as "print the result of 2 + 3, then divide print's return value (which is 1 if print worked) by 5, and then do nothing with the result". This is obvious if you stick another print in there:

$ perl -e 'print print (2+3)/5' 50.2

which is parsed as:

print((print(2+3))/5)

Replies are listed 'Best First'.
Re^5: return +0
by goibhniu (Hermit) on Nov 27, 2007 at 18:31 UTC

    And just to close the logic loop (++DrHyde and lidden, btw), this leading plus helps the parser evaluate all those numbers into a single value before printing.

    $ perl -e 'print +(2+3)/5' 1

    So I assume the author of the code the OP was reading thought there might be some ambiguity and wanted to help the parse out with that return statement.


    I humbly seek wisdom.