:P The last expression of a sub/block/package is its return value; when there is no explicit return. So that little snippet just rotates returning "true" and "false" randomly; idiom: return 0 or 1 element of anon array with 2 elements, one true, one false. By adding a print you made the sub always return "true."
exit values are approximately opposed to return/success values in most Perl. The bang (!) performs this inversion. exit == 0 means success, any other value (-1, 1 .. 255) means some flavor of fail (on *nix anyway). Why I suggest it is cognitively a bad idea for a Perl script. To test the original, try these instead (with 1140673.pl being the first scriptlet I posted)-
moo@cow~>1140673.pl && echo "I CAN HAZ SUCCEED?" moo@cow~>1140673.pl || echo "FAIL!"
In reply to Re^4: exit this way
by Your Mother
in thread exit this way
by ExReg
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |