Questa potrebbe essere una domanda stupida ... Il codice seguente restituisce il contenuto di @arrayref
e @arraycont
rispettivamente. Notare la differenza tra loro e il modo in cui i valori vengono assegnati. So cosa fa l'array anonimo, ma qualcuno può spiegare perché c'è una differenza?Perl: riferimento matrice contro array anonimo
Grazie mille.
@arrayref =();
@array = qw(1 2 3 4);
$arrayref[0] = \@array;
@array = qw(5 6 7 8);
$arrayref[1] = \@array;
print join "\t", @{$arrayref[0]}, "\n";
print join "\t", @{$arrayref[1]}, "\n";
@arraycont =();
@array = qw(1 2 3 4);
$arraycont[0] = [@array];
@array = qw(5 6 7 8);
$arraycont[1] = [@array];
print join "\t", @{$arraycont[0]}, "\n";
print join "\t", @{$arraycont[1]}, "\n";
uscite
5 6 7 8
5 6 7 8
1 2 3 4
5 6 7 8
A * * copia superficiale, se '@array 'riferimenti contenuti quindi' [@array] 'conterrebbe quegli stessi riferimenti. La differenza profondità/superficialità non si applica in questo caso, ma ho pensato che valesse la pena menzionarla comunque. –
Grazie, aggiornato. – yamen