2009-12-09 1 views
5

Ich bin neu bei Perl und bin gespannt, ob @{$list_ref} und @$list_ref vollkommen gleichwertig sind.

Sie scheinen austauschbar zu sein, aber ich bin nervös, dass da etwas Subtiles vor sich geht, das ich vermisse.

+11

Empfohlener Wert: 'perldoc perlreftut'. Bricht fast alles, was du über Referenzen wissen musst, in sehr einfache Teile auf, damit du sie mit Zuversicht lernen kannst :) – hobbs

+1

@hobbs Das ist das zweite mal das ich perlreutut erwähnt habe. Ich denke, ich sollte es besser lesen. :-) –

+1

@hobbs +1; auch perlol: http://perldoc.perl.org/perllol.html –

Antwort

10

Ja, sie sind gleichwertig. Sie benötigen Klammern, wenn der Ausdruck mehr als eine einfache skalare Variable ist, z. B. .,

push @{ $foo{$bar} } => "baz"; 

Weitere Einzelheiten finden Sie in der Using References Abschnitt des documentation on references. Die Standard-Perl-Dokumentation enthält auch mehrere Anleitungen zur Verwendung von Referenzen:

6

ich immer gefunden habe es hilfreich, Denken Sie daran, dass die äußeren Klammern keine syntaktische Magie sind, sondern nur ein Block, der eine Referenz zurückgibt. Der Ausdruck innerhalb des Blocks kann alles sein, was eine Referenz zurückgibt: