From: Chris White Date: 2011-08-15T22:36:41+09:00 Subject: Re: Ternary statement needing parenthesis..(?) On Aug 15, 2011, at 6:05 AM, Michelle Pace wrote: > Hello, just wondering why is it that I have to use the parenthesis in > the below ternary statement? (A.) works fine but (B.) bombs out with a > syntax error:- > > (1) 60 > 55 ? puts("when true") : puts("when false") > (2) 60 > 55 ? puts "when true" : puts("when false") puts thinks you're trying to start referencing symbol (ala :symbol) as part of additional arguments, as ?: is a low precedence operator. Another example of a non puts call that will fail: 60 > 55 ? exec "ls" : puts "when false" In cases of outputting strings, I tend to put the puts outside of the conditional and simply return the value: puts (65 > 55) ? "when true" : "when false" Regards, Chris White http://www.twitter.com/cwgem