if unless
In Perl, you can do something like VERB if CONDITION
or VERB unless CONDITION
.
There is not clear rule about which one to use, and I can say that I've preferred one of the other at different parts of my Perl-life.
Recently, I've settled on a simple rule to decide which one to use. The decision is based on the type of CONDITION
that follows.
For me, something like 'CONDITION && CONDITION' is much easier to read and understand than 'CONDITION || CONDITION'. The reason is simple: the first, using &&
, has less positive outcomes, and usually thats the one you are testing for, so my brain doesn't need to keep several possible options in my memory. I can short-circuit and forget what was before the &&
as soon as I decide that it is true.
So my current rule is simple: use the one who converts your condition to a &&
.
So if I have:
return unless $estado eq 'clean' || $estado eq 'dirty';
I rewrite it as:
return if $estado ne 'clean' && $estado ne 'dirty';
update: I need sleep, really. Updated the examples to make some sense. Thanks to Pedro Leite.