在Perl中,你可以分配給一個變量的引用到另一個變量,就像這樣:淺複製引用到的變量在Perl
my @array = (1..10);
my $ref = \@array;
而且,因爲它是一個參考,你可以做這樣的事情,並這兩個變量將受到影響:
push @array, 11;
push @$ref, 12;
和兩個變量將包含1..12
,因爲它們都指向同一個空間。
現在,我想知道是否有任何方法可以做同樣的事情,但從ref開始,然後將該引用分配給一個普通變量。例如:
my $ref = [1..12];
my @array = # something here that makes @array point to the same space $ref contains
我知道我可以只給它分配是這樣的:
my @array = @$ref;
但是,這是一個副本。如果我改變$ ref或@array,那將是獨立的改變。
有沒有辦法讓@array指向與$ ref相同的變量?
重複http://stackoverflow.com/questions/14070342/typeglob-aliases – 2013-04-06 12:10:23
記池上的注意關於最明智的做法。如果你使用嵌套的Perl結構,那麼你會習慣把它作爲一個ref來獲取,而不是將它複製到一個數組變量。它只增加1個字符輸入到'$'。 – Axeman 2013-04-06 14:20:20
@ Axeman2:當然可以。這個問題更多的是教育精神。 :-) – 2013-04-06 16:50:26