[問題] 如何複製「物件」?

看板Perl作者 (無)時間15年前 (2010/02/24 11:55), 編輯推噓3(3012)
留言15則, 3人參與, 最新討論串1/2 (看更多)
my $object1=new class(); ......$object1 處理了一些事情。 my $object2=new class(); 用$object2=$object1; 這應該只是把$object2「參考」到$object1 他們2個應該指得還是同一個地方,不能獨立出來。 我想把$object1 「複製」給 $object2,該如何用? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.199.152

02/24 11:58, , 1F
寫個sub replicate吧
02/24 11:58, 1F

02/24 12:01, , 2F
$o2=\解參照$o1
02/24 12:01, 2F

02/24 12:11, , 3F
最後記得要bless一下
02/24 12:11, 3F

02/24 12:50, , 4F
$object2 = bless {%$object1}, class
02/24 12:50, 4F

02/24 14:40, , 5F
這個方式不行,oj1 跟 oj2 還是參考在一起。
02/24 14:40, 5F

02/24 16:36, , 6F
要看您的資料結構:%是其中一種 所謂解參照要遞迴解下去ㄅ?
02/24 16:36, 6F

02/24 16:45, , 7F
可以建個sub用Storable的freeze $o1再thaw出來bless?
02/24 16:45, 7F

02/24 16:48, , 8F
我的意思是如果您物件的參數存法是binary tree之類的
02/24 16:48, 8F

02/25 00:02, , 9F
我的資料結講很簡單,只是hash裡存放一些資料而已
02/25 00:02, 9F

02/25 00:05, , 10F
您說的方式還不是很了解,我對類別還不是非常的懂,
02/25 00:05, 10F

02/25 00:05, , 11F
不過還是謝謝您!
02/25 00:05, 11F

02/25 00:17, , 12F
試試看: $o2=\%$o1;bless $o2,'class'; ㄅ
02/25 00:17, 12F

02/25 00:33, , 13F
四樓
02/25 00:33, 13F

02/25 00:44, , 14F
%$o2=%$o1;
02/25 00:44, 14F

02/25 00:50, , 15F
tmtowtdi
02/25 00:50, 15F
文章代碼(AID): #1BXACWNP (Perl)
文章代碼(AID): #1BXACWNP (Perl)