Devo apportare modifiche a uno script Perl e questo è il mio primo tentativo di comprendere Perl. Vedo il seguente:Sintassi Perl insolita
my %trades;
...
foreach my $row (@$rows) {
@{$trades{pop @$row}} = @$row;
}
Sono confuso da questo perché sembra che ci stanno spuntando fuori l'ultimo elemento dell'array @$row
e impostando il tasto cancelletto di %trades
essere l'elemento che è stato spuntato fuori e l'impostazione del valore da @$row
.
Questa comprensione è corretta?
Solo una nota di stile: tipicamente "Perl" per la lingua e "perl" per il programma. Non è "PERL" a meno che il tuo tasto Maiusc sia bloccato. :) – cHao
Potrebbe anche essere scritto '$ trades {pop @ $ row} = $ row;' o 'my $ id = pop @ $ row; $ trades {$ id} = $ row; ' – ikegami
@ikegami: No. Perché il tuo copia riferimenti mentre l'originale copia gli elementi dell'array. – Borodin