From: Sebastian Hungerecker Date: 2008-08-28T19:09:18+09:00 Subject: Re: Confused by scope in ruby Mischa Fierer wrote: > The number, as I would expect, stays at two, but the hash is actually > changed by the method, as if I were passing it a pointer in C or > something... Well, that's exactly what's happening at C level - in both cases. The difference is that if you do foo[bar] = baz or foo.method_that_changes_foo! then you change the object that foo points to (so all other variables that point to the same object will also reflect those changes), but if you do foo = bar, you're just changing the pointer, i.e. foo now points to wherever bar points to and the object that it previously pointed to is unchanged. HTH, Sebastian -- Jabber: sepp2k@jabber.org ICQ: 205544826