From: Markus Jais Date: 2002-06-12T20:41:50+09:00 Subject: Re: array reference ? Hugo de Paix de Coeur wrote: > Hi, > consider this bunk of code: > > irb(main):001:0> def modify(a) > irb(main):002:1> a += [ 2 ] > irb(main):003:1> end > nil > irb(main):004:0> a = [ 1 ] > [1] > irb(main):005:0> modify(a) > [1, 2] > irb(main):006:0> a > [1] <<<< a hasn't been modified > irb(main):007:0> > > Why "a" isn't modified by "modify" function?, because this work with a > Hash class: > > irb(main):013:0> def modify(h) > irb(main):014:1> h[2] = 2 > irb(main):015:1> end > nil > irb(main):016:0> h = { 1 => 1 } > {1=>1} > irb(main):017:0> modify(h) > 2 > irb(main):018:0> h > {1=>1, 2=>2} <<<< h has been modified > > How can i make it working with an array? > thanks .. hello I am not sure what you want. with the hash modify you use the assignment operator and with the array modify you use += if you want to add another alement to array a you can write def modify(a) a << [ 2 ] end this append the elemnt to the array. if you want to modify a special element, write a[index] = value maybe I misunderstood you and this is a stupid answer. markus