Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re^3: Pearls (not really) of Perl programming

by bart (Canon)
on Nov 25, 2004 at 11:57 UTC ( #410372=note: print w/replies, xml ) Need Help??

in reply to Re^2: Pearls (not really) of Perl programming
in thread Pearls (not really) of Perl programming

It's not that bad, at least in perl, as it appears to optimize it away. At least, on ActivePerl 5.8.4, the following script:
#! perl $x = 3; if(0 || $x == 2 || $x == 3) { print "Yeah!\n"; }
under `perl -MO=Deparse`, produces: syntax OK $x = 3; if ($x == 2 or $x == 3) { print "Yeah!\n"; }

In general, I prefer my "||" on the right:

$x = 3; if( $x == 2 || $x == 3) { print "Yeah!\n"; }

If you want, you can still append "|| 0" to the condition, allowing for more symmetry, but not optimized away. At least it'll only be executed if every other condition fails.

There's a reason why Perl accepts lists ending with ",", or at least: it's a good thing Perl accepts lists ending with ",". In a way it's too bad (tough understandable) it won't do the same for "||".

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://410372]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2018-03-18 06:09 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (228 votes). Check out past polls.