On Mon, Dec 19, 2011 at 12:48 PM, Nick Sandberg <nss118 / gmail.com> wrote: > I was working a project Euler problem and noticed that when I used this > code: > > array1 = ["a", "b", "c", "d", "e"] > array2 = Array.new > array2 << array1 You just stored the object array1 inside of array 2. > array1.clear Having cleared array1 (emptied it out) by calling the Array instance in array1's clear method... > p array2 > > [[]] is my output. But, when I tried: ...you see the expected output, since the array1 object is now empty. > > array1 = ["a", "b", "c", "d", "e"] > array2 = Array.new > array2 << array1 > array1 = [] Here you are NOT clearing out array1, but assigning a brand new array object to the variable array1. So the old array1 is still in existence (and still stored in array2). > p array2 > > [["a", "b", "c", "d", "e"]] is my output. ¨Â áí îïõîäåòóôáîäéî÷è> clearing array1 is changing array2, but replacing the value of array1 is > having no effect. I hope this clears it up a bit. <<snip>> Aaron out.