From: Harry Kakueki Date: 2010-04-02T17:25:41+09:00 Subject: Re: scope question > > a_hash, an_arr and a_num are local to the method indeed. However, a_hash and an_array hold references to hash and array object respectively, not copies. So you are changing the objects passed to this method via those references. On the other hand, a_num is passed a Fixnum instance which are implemented as immediate objects and hence passed as copy. > def scope_q(an_arr) #an_arr[1] = 5 #This is a reference. an_arr = [6,6] #This is a local an_arr ? end a = [1,2,3,4] scope_q(a) p a #> [1, 2, 3, 4] Harry