Esto puede ser una pregunta tonta ... El siguiente código genera el contenido de @arrayref
y @arraycont
respectivamente. Tenga en cuenta la diferencia entre ellos y la forma en que se asignan los valores de ellos. Sé lo que hace la matriz anónima, pero ¿alguien puede explicar por qué hay una diferencia?Perl: referencia a un array frente matriz anónima
Muchas gracias.
@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";
salidas
5 6 7 8
5 6 7 8
1 2 3 4
5 6 7 8
A * * poco profunda copia, si es '@array 'contiene referencias y' [@array] 'contiene esas mismas referencias. La diferencia profunda/superficial no se aplica en este caso, pero pensé que valía la pena mencionar de todos modos. –
Gracias, actualizado. – yamen