From: Peter Hickman Date: 2004-01-09T00:59:03+09:00 Subject: Re: I don't understand this behavour, is it a bug? In ruby, as opposed to say basic or c, the variables do not hold values but references to the values. In c terms all ruby variables are pointers. Thus one is a pointer to the data [1,2,3,4,5], it does not hold the actual data just the address of where it is. When you do two = one you are copying the address of the data from one to two. one and two (and three) are now pointing to the same data. So when you change the data via the address given in the variable three one and two are still pointing to the same data and therefore show the same values. The key phrase here is 'variables store a reference to the data and not the data itself'. I hope I haven't confused you too much.