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:-
>=20
> (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=