From: Hal Fulton Date: 2005-03-01T08:57:41+09:00 Subject: Re: aliasing variables Eliah Hecht wrote: > Is there a way to do something like > a = 1 > alias(b,a) > a += 1 > where the desired effect is that now b == 2? > It's impossible in the general case, because a+=1 literally means a=a+1 (in other words, it creates a new object and assigns that to a). Fixnums are not mutable at all. But if an object is mutable, and an operator modifies the object rather than creating a new one, the behavior you want will happen: a = "cat" b = a a << "hode" puts b # cathode However, assignment never keeps the same object: a = "cat" b = a a += "hode" puts b # cat In short: Assignment works on variables, not objects; but methods are called on objects, not variables. Make sense? Hal