in reply to Re^4: Compiler Optimization
in thread Compiler Optimization
But can ($var || 2) ever be false ?
No way I can see. So yes, the OPs code should be reducible to just $var; though that will produce a warning: Useless use of private variable in void context ....
And $var || 2; gets Useless use of a constant in void context ...
Replace the 2 with 1: $var || 1; to take advantage of a special case that produces no warning and deparses as:
C:\Users\HomeAdmin>perl -MO=Deparse -Mstrict -wle"my $var = 1; $var || + 1;" BEGIN { $^W = 1; } BEGIN { $/ = "\n"; $\ = "\n"; } use strict 'refs'; my $var = 1; '???' unless $var; -e syntax OK
Or:
1 if $var;
which achieves the same thing.
Or, if he's happy there are no ties involved, ditch the whole darn thing.
|
|---|