我有一个存储对象的共享数组。
package A;
use threads;
use threads::shared;
our @LISTS;
share(@LISTS);
use B;
my $obj = B->new();
my $shared_test = shared_clone($obj);
push(@A::LISTS, $shared_test);
我想将 LISTS 共享数组复制到普通数组。
我将它复制到另一个模块中的两个数组中,当我修改一个数组时,它会影响另一个数组。这是代码
my @test1 = @A::LISTS;
my @test2 = @A::LISTS;
$test1[0]->set_value("1");
print "value: ".$test1[0]->get_value()."\n";
$test2[0]->set_value("2");
print "value2: ".$test2[0]->get_value()."\n";
print "value1: ".$test1[0]->get_value()."\n";
输出:
value: 1
value2: 2
value1: 2
但我想要@test1、@test2 数组来自共享。我该怎么做?
我想要像这样的输出
value: 1
value2: 2
value1: 1
修改后的值不应影响另一个数组