From: Daniele Antani Date: 2008-01-09T23:35:53+09:00 Subject: Why this behaviour? Hello to all, i can't understand the follow behaviour: class Player attr_accessor :hand def initialize(hand) @hand = hand end end def roba(player) p2 = Player.new(player.hand) change p2 print "p2 = " p p2 print "player = " p player end def change(player) player.hand.push(3) end p1 = Player.new([2, 3, 4]) roba p1 __END__ output is: p2 = # player = # Why the change affects both objects? I want to copy the first object and work on the copy without affecting the original. Thanks -- Posted via http://www.ruby-forum.com/.