title: In ruby, is this a two dimensional array bug?
body: <p>I have a method:</p>
  
  <pre><code>def test
      f = Array.new(4,Array.new(4,false))
      f.each do |array|
          p array.inspect
      end
      f[1][1] = true
      p "after setting f[1][1]"
      f.each do |array|
          p array.inspect
      end
  end
  </code></pre>
  
  <p>This is the output:</p>
  
  <pre><code>"[false, false, false, false]"
  "[false, false, false, false]"
  "[false, false, false, false]"
  "[false, false, false, false]"
  "after setting f[1][1]"
  "[false, true, false, false]"
  "[false, true, false, false]"
  "[false, true, false, false]"
  "[false, true, false, false]"
  </code></pre>
  
  <p>As you can see all values in col 1 became true, why could that happen??? </p>