in reply to Conditional Operator Confusion

Looks like it's operator precendence. This works as you expected.

for(1..10){ $_>5 ? ($x='foo') : ($x='bar'); print "$_:$x\n"; }
--
<http://dave.org.uk>

"The first rule of Perl club is you do not talk about Perl club."
-- Chip Salzenberg

Replies are listed 'Best First'.
Re^2: Conditional Operator Confusion
by Melly (Chaplain) on Nov 29, 2006 at 12:39 UTC

    Well, pfft - that's no good for golf... although I'm still confused - how does precedence work in this context?

    Tom Melly, pm@tomandlu.co.uk
      ??
      C:\>perl -MO=Deparse,-p for(1..10){ $_>5 ? $x='foo' : $x='bar'; print "$_:$x\n"; } ^Z foreach $_ (1 .. 10) { ((($_ > 5) ? ($x = 'foo') : $x) = 'bar'); print("${_}:$x\n"); } - syntax OK