arrays - Cosa significa \ @array in Perl?




shift perl (2)

I riferimenti di matrice sono principalmente utili come parametri per le subroutine. Senza riferimenti, passare l'array @a (con gli elementi 1,2,3) equivale praticamente a passare 1, 2 e 3 separatamente al sub. Con \@array , il sub può vedere l'intero array, ad esempio determinare la sua lunghezza in modo esplicito, manipolarlo in modo che il chiamante possa vedere le modifiche, ecc. Il prezzo per quel potere è che il sub deve usare sintassi più complicata quando accede al elementi dell'array: $$a[0] invece di $a[0] .

Ho un codice Perl in cui ho notato che un array viene utilizzato con una barra rovesciata iniziale come \@array

Qualcuno può spiegare cosa significa?


la notazione \@ restituirà un riferimento (o un puntatore) all'array fornito, quindi:

$arrayref = \@array

renderà $arrayref un riferimento a @array - questo è simile all'utilizzo della notazione del puntatore *p in C.





reference