W Perl, można przypisać do zmiennej odniesienie do innej zmiennej, tak:Płytki referencyjna kopia do zmiennej w Perlu
my @array = (1..10);
my $ref = \@array;
I, jak to jest odniesienie, można zrobić coś takiego i zostaną naruszone obie zmienne:
push @array, 11;
push @$ref, 12;
i obie zmienne będą zawierać 1..12
, ponieważ zarówno punkt do tej samej przestrzeni.
Teraz chciałbym wiedzieć, czy istnieje sposób, aby zrobić to samo, ale zaczynając od ref i później przypisując to odniesienie do zwykłej zmiennej. Na przykład:
my $ref = [1..12];
my @array = # something here that makes @array point to the same space $ref contains
wiem, że mogę po prostu przypisać go tak:
my @array = @$ref;
jednak, że jest to kopia. Jeśli zmienię $ ref lub @array, będą to niezależne zmiany.
Czy jest jakiś sposób, aby uczynić punkt @array tą samą zmienną co $ ref?
Duplikat http://stackoverflow.com/questions/14070342/typeglob-aliases –
Należy wziąć pod uwagę noty Ikegami chodzi o najbardziej sensowne podejście. Jeśli pracujesz z zagnieżdżonymi strukturami Perla, wystarczy, że przyzwyczaisz się do odzyskania go jako ref, zamiast kopiowania go do zmiennej tablicowej. Dodaje tylko 1 znak do wpisania do '$'. – Axeman
@ Axeman2: Tak, oczywiście. To pytanie dotyczyło raczej ducha edukacji. :-) –