in reply to Re: Useless unless
in thread Useless unless
You may as well use the standard if/else and avoid a temporary.No temporary variable, and no if/else, replacing
can be done as:EXPR1 if $x; EXPR2 unless $x;
except that EXPR1 and EXPR2 in the latter have their own scopes - but you have that with an if/else construct as well.((sub {EXPR1}, sub {EXPR2})[!!$x || 0])->();
If EXPR1 and EXPR2 are function calls using the same arguments, as in:
one could write:foo($arg, @args) if $x; bar($arg, @args) unless $x;
((\&foo, \&bar)[!!$x || 0])->($arg, @args)
|
|---|