If you can't memorize
perlop and the precedence, and I tell you I cannot, the way to figure out how "perl" is reading yer program, is to use O::Deparse, so that's what I did (although this example was simple enough to figure out):
bash-2.05$ perl -e'$v = 444;if($v == 456 || 453){print 1}else{print 2}
+'
1bash-2.05$
bash-2.05$
bash-2.05$
bash-2.05$ perl -MO=Deparse -e'$v = 444;if($v == 456 || 453){print 1}e
+lse{print 2}'
-e syntax OK
$v = 444;
if ($v == 456 or 453) {
print 1;
}
else {
print 2;
}
Now that's not what you thought would happen. Perl is pretty cool, and there is much voodoo within, but the *binary* operators, cannot be chained as such . The term binary implies that they operate on 2 values, the one on the left, and the one on the right. it's not the one on the left, and the 2 on the right (usually). ++ and -- unary operators. they operate on 1 value. now you know. peace