gpt4 book ai didi

perl - memoize 是否对 perl 对象进行深度复制?

转载 作者:行者123 更新时间:2023-12-01 12:37:53 26 4
gpt4 key购买 nike

我设计了一个返回对象表的函数。这些对象的内容尚未定义,但我想在每次调用之间进行深度复制(如在 Java 中)。

memoize 如何恢复返回值?它是否对它进行深拷贝?没有说明在 Memoize 模块帮助中返回答案之前如何复制答案。

# How i solved the problem at first....
use Storable qw(dclone);
my $saved_value ; # undef
sub get_all {
return dclone($saved_value) if (defined $saved_value) ;
....
$saved_value = dclone( $ans ) ;
return $ans
}

最佳答案

试试看?

use Memoize;
sub foo { {bar=>[1..4]} }
memoize('foo');
foo()->{'bar'}[3] = 5;
print foo()->{'bar'}[3];

打印 5,因此它不会进行深度复制。我离开看看它是否能生成一个浅拷贝作为练习。

关于perl - memoize 是否对 perl 对象进行深度复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27948277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com