У меня есть общий массив, который хранит объекты.Как скопировать переменную разделяемого потока в обычный массив
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
измененное значение не должно влиять на другой массив
К сожалению, я забыл дать ожидаемый выход. отредактированный пост с ожидаемым выходом. – kvysh