http://www.perlmonks.org?node_id=1004639


in reply to shift and logical or

Do you understand Perl's logical ||? The key point in the context you are having trouble understanding is that the tested value is returned. Other languages with a logical or return a boolean value. Perl returns the actual value. So:

0 || 'wibble'

returns the string wibble, not 1, -1 or true as you might get in other languages. That makes logical or very useful for providing default values.

True laziness is hard work