Как "отсоединить" ссылку на массив Perl от указанной переменной - PullRequest
4 голосов
/ 24 июня 2010

В Perl 5.10.1:

#!/usr/bin/perl

my @a = (1, 2, 3);
my $b = \@a;
print join('', @{$b}) . "\n";
@a = (6, 7, 8);
print join('', @{$b}) . "\n";

Это печатает 123, затем 678. Однако я хотел бы получить 123 оба раза (то есть переназначение значения @a не изменит массив, на который ссылается $b). Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

Сделать ссылку на копию @a.

my $b = [ @a ];
0 голосов
/ 25 июня 2010

Бреттер использует dclone для глубокого клонирования ссылок, указывающих на анонимные структуры данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...