my ($first, $second) = ( 0, 1 ); print "Truth\n" if $first++ || $second++; print "First: $first\nSecond: $second\n"; __OUTPUT__ Truth First: 1 Second: 2 # Both sides got evaluated because since $first was # false it was necessary to evaluate $second to # determine if truth exists (it does).