In Perl, können Sie auf eine Variable, die einen Verweis auf eine andere Variable, wie folgt vergeben:Shallow Kopie Referenz in die Variable in Perl
my @array = (1..10);
my $ref = \@array;
Und, wie es eine Referenz ist, können Sie etwas tun und beide Variablen werden davon betroffen sein:
push @array, 11;
push @$ref, 12;
und beide Variablen 1..12
, weil sie beide auf dem gleichen Raum enthalten.
Nun würde ich gerne wissen, ob es eine Möglichkeit gibt, das gleiche zu tun, aber mit einem Ref zu beginnen und diesen Verweis später einer einfachen Variablen zuzuordnen. Zum Beispiel:
my $ref = [1..12];
my @array = # something here that makes @array point to the same space $ref contains
Ich weiß, dass ich es so einfach zuordnen kann:
my @array = @$ref;
aber, dass eine Kopie ist. Wenn ich $ ref oder @array ändere, sind das unabhängige Änderungen.
Gibt es eine Möglichkeit, @array auf dieselbe Variable wie $ ref zu zeigen?
Doppelte http://stackoverflow.com/questions/14070342/typeglob-aliases –
Beachten Sie Ikegami Notiz über die vernünftigste Ansatz. Wenn Sie mit verschachtelten Perl-Strukturen arbeiten, werden Sie sich daran gewöhnen, sie als Referenz zu lesen, anstatt sie in eine Array-Variable zu kopieren. Es fügt nur 1 Zeichen hinzu, um '$' einzugeben. – Axeman
@ Axeman2: Ja, natürlich. Diese Frage bezog sich mehr auf den Bildungsgeist. :-) –