From: Nelson Owen Date: 2005-09-08T04:38:49+09:00 Subject: weird result when updating an array element Given the code below, only one element in @ver should be changed, however when I execute the code all the elements are changed. Can anyone explain why this is happening? class SomeClass def initialize @ver = Array.new(2, {'pos' => Array.new(3), 'col' => Array.new(4)}) @ver[0]['pos'][0] = 0 puts @ver.inspect end end SomeClass.new actual result: [{"col"=>[nil, nil, nil, nil], "pos"=>[0, nil, nil]}, {"col"=>[nil, nil, nil, nil], "pos"=>[0, nil, nil]}] expected result: [{"col"=>[nil, nil, nil, nil], "pos"=>[0, nil, nil]}, {"col"=>[nil, nil, nil, nil], "pos"=>[nil, nil, nil]}]