rubyでFizzBuzz

まあアルゴリズムperlでFizzBuzz - だるろぐ跡地なわけだが。

ary3 = ['fizz', '', '']
ary5 = ['buzz', '', '', '', '']

(1..100).each do |i|
  v1 = i % 3
  v2 = i % 5
  #res = ary3[v1] << ary5[v2]
  res = ary3[v1] + ary5[v2]

  if res.length == 0
    print i
  else
    print res
  end

  print ' '
end

<<だと何か変な動きになるなーと思ったら、<<は対象に文字列を付加する。だからary3[v1]が上書きされる。
これ分からなくて1時間悩んだ。


俺が期待したのは

my $res = $ary3[$v1] . $ary5[$v2];

だったが、結果は

my $res = $ary3[$v1] .= $ary5[$v2];

だったと。


それにしても、'ruby'はタイプし辛い。'perl'の何と打ちやすいことか。