Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

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 test.pl`, produces:
test.pl 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 "||".


Comment on Re^3: Pearls (not really) of Perl programming
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://410372]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (10)
As of 2014-09-02 21:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (30 votes), past polls