なかだです。

http://pc8.2ch.net/test/read.cgi/tech/1154077799/176-177 で出て
いた話ですが、三項演算子のコロンの後ろには改行を置けますが、前
には許されません。perlではどちらもOKのようです。

  $ ruby -c -e 'p 1 == 3 ?
  7
  :
  8
  '
  -e:2: syntax error, unexpected '\n'

  $ perl -e '$\="\n";print 1 == 3 ?
  7
  :
  8
  '
  8

これは通しても問題ないような気がするのですが。

* parse.y (arg): allow newlines before ternary colon.


Index: parse.y =================================================================== RCS file: /cvs/ruby/src/ruby/parse.y,v retrieving revision 1.449 diff -p -U 2 -r1.449 parse.y --- parse.y 12 Jul 2006 11:10:21 -0000 1.449 +++ parse.y 6 Aug 2006 03:28:10 -0000 @@ -2095,11 +2095,11 @@ arg : lhs '=' arg %*/ } - | arg '?' arg ':' arg + | arg '?' arg opt_nl ':' arg { /*%%%*/ - $$ = NEW_IF(cond($1), $3, $5); + $$ = NEW_IF(cond($1), $3, $6); fixpos($$, $1); /*% - $$ = dispatch3(ifop, $1, $3, $5); + $$ = dispatch3(ifop, $1, $3, $6); %*/ }
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦