Hi Shawn!

On Monday 29 Mar 2010 17:19:36 Shawn H Corey wrote:
> On Mon, 29 Mar 2010 10:02:15 -0400
> 
> Jeff Soules <sou...@gmail.com> wrote:
> >     ($foo == 1) ?
> >     
> >     $bar = 0 :
> >     $bar = 1;
> > 
> > Am I doing something stupid or missing something obvious?
> 
>     ($foo == 1) ?
>       ( $bar = 0 ) :
>       ( $bar = 1 );
> 
> Assignment has lower precedence than ?:  It is done last.  What you
> wrote above is:
> 
>     (($foo == 1) ?
>       $bar = 0 :
>       $bar ) = 1;
> 
> Which assigns 1 to $bar regardless of what $foo is.

Thanks for the clarification. I suspected something of this sort was the case. 
Whenever I don't remember what the operator precedence is, I always add a few 
parentheses. I still often tend to do something like:

{{{
if (($age > 18) && ($name eq "Catherine"))
}}}

(I.e: put parentheses around the clauses of if statements, even though they 
are not needed or I could use the ultra-low-precedence "and"/"or"/etc.)

Regards,

        Shlomi Fish

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
My Aphorisms - http://www.shlomifish.org/humour.html

Deletionists delete Wikipedia articles that they consider lame.
Chuck Norris deletes deletionists whom he considers lame.

Please reply to list if it's a mailing list post - http://shlom.in/reply .

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to