Domanda

Sono nuovo di Perl e sono curioso di sapere se @{$list_ref} e @$list_ref sono perfettamente equivalenti.

Sembrano essere intercambiabili, ma io sono nervoso che ci sia qualcosa di sottile succede che io possa mancare.

È stato utile?

Soluzione

Sì, sono equivalenti. È necessario parentesi graffe quando l'espressione è più di una semplice variabile scalare, per es. ,

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

Per maggiori dettagli, vedere la Utilizzando sezione del href = "http://perldoc.perl.org/perlref.html" rel = "nofollow noreferrer"> documentazione su riferimenti . La documentazione standard di Perl include anche diversi tutorial sull'utilizzo di riferimenti:

Altri suggerimenti

Ho sempre trovato utile ricordare che le parentesi esterne non sono magici sintattica, sono solo un blocco che restituisce un riferimento. L'espressione all'interno del blocco può essere qualsiasi cosa che restituisce un riferimento:

$ perl -le 'sub foo {[qw/ apple orange banana /]} print ${print "Do something here."; foo()} [1]'
Do something here.
orange
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top