From: Brian Candler Date: 2011-07-14T06:18:51+09:00 Subject: Re: array overwrite question jake kaiden wrote in post #1010461: > CC Chen wrote in post #1010408: > >> If on multi-dimension array? >> >> I try .dup it cant work!! > > what version of ruby are you using, with both 1.8.7 and 1.9.2 > Array#dup works for me... > > bb = [[1,2], [3,4], [5,6]] > cc = bb.dup > > p cc But of course, the subarrays in cc and the subarrays in bb are the same objects. bb = [[1,2], [3,4], [5,6]] cc = bb.dup bb[0] << 3 p cc # [[1, 2, 3], [3, 4], [5, 6]] You can do the dups for the second level too yourself, or use this deep copy trick: cc = Marshal.load(Marshal.dump(bb)) -- Posted via http://www.ruby-forum.com/.