in reply to order of operations with conditionals at the end
I hate statement modifiers. All except "for". Anyway, whenever in doubt place parens and/or check:
$ perl -MO=Deparse -e'push @badVals, $val && next if isBad($val);' push @badVals, $val && next if isBad($val); -e syntax OK $ perl -MO=Deparse -e'(push @badVals, $val && next) if isBad($val);' push @badVals, $val && next if isBad($val); -e syntax OK $ perl -MO=Deparse -e'push @badVals, ($val && next) if isBad($val);' push @badVals, $val && next if isBad($val); -e syntax OK $
Note that all parse the same, and thus probably do not do what you expected it to do. Compare to:
$ perl -MO=Deparse -e'(push @badVals, $val) && next if isBad($val);' push @badVals, $val and next if isBad($val); -e syntax OK $ perl -MO=Deparse,-p -e'push @badVals, $val && next if isBad($val);' (isBad($val) and push(@badVals, ($val && next))); -e syntax OK
update: added -p example after kcott's post.
|
|---|