読者です 読者をやめる 読者になる 読者になる

[ruby] orの位置

久しぶりに仕事でRubyを使っていたのだけれど、ちょっと意外だった動作。

$ ruby
p 'hoge' if (1 == 2 or
3 == 3)
"hoge"
$ ruby
p 'hoge' if (1 == 2
or 3 == 3)
-:2: syntax error, unexpected kOR, expecting ')'
or 3 == 3)

パーサー的に必ず左辺が必要なのかなぁ。
複数行にまたがるときのand/orは前に置きたい派なんだけどちょっと困った。
ちなみにPerlはできる。

$ perl
print 'hoge' if (1 == 2
or 3 == 3)

それにしてもPerlRubyを行ったり来たりすると、use/requireやprint/pがこんがらがってきて楽しい。