From: Adriano Ferreira Date: 2005-04-25T21:53:18+09:00 Subject: Re: Array::new > foo = Array.new(3,Array.new) > foo = Array.new(3,[]) I think these are just the same. Indeed, the object creation ([] or Array.new) happens only once. To have distinct arrays in every slot of foo you need something like foo = Array.new(3) { Array.new } foo[0] << 4 foo[1] << 5 foo[0] << 6 p foo (as Dave Baldwin suggested) and you'll get [[4, 6], [5], []] If you come to this code, by looking at the Array documentation where the example Array.new(2, Hash.new) � [{}, {}] is given, I agree that this documentation is misleading for beginners. Regards, Adriano.