slopal escribiste:Hola, necesitaría algo así, como un array que se acceda por su índice {0, 1, ... n-1}, y que dentro de cada array hubiera una lista que se pueda llenar, consultar y tal.
push @vector, [1,2,3,4,5];
print $vector[0][2]; # 3Lo que hacemos es 'meter' (push) en el @vector, una referencia a una lista ([]). Algo así como
@lista=(1,2,3,4,5);
push @vector, \@lista;y de esa manera ya tenemos una variable con dos dimensiones ($vector[0][2], que realmente es $vector[0]->[2], porque el elemento 0-ésimo de vector es una referencia, tenemos que desreferenciarla (->) y lo que obtenemos es acceso a otra lista, de la cual extraemos el tercer elemento ([2]))
También se podía haber hecho:
@lista = (1,2,3,4,5);
$vector[24] = \@lista;Para poner la lista en la posición vigésimo quinta.
slopal escribiste:Y si eso se pudiera hacer, ya para completar, me iría de coña que en realidad fuera:
[i]array donde en cada posición hubieran "dos casillas" (como una matriz n x 2), y en la primera casilla hubiera un número y en la segunda una lista. Por ejemplo:
array[$1] = [24][(1,5,7,99,336,68]
Using bash Syntax Highlighting
explorer@next3:~> perl -MData::Dumper -le 'push @{$a[2]}, ( 24, [ 1,5,7,99,336,68 ] ); print Dumper @a'
$VAR1 = undef;
$VAR2 = undef;
$VAR3 = [
24,
[
1,
5,
7,
99,
336,
68
]
];
explorer@next3:~> perl -MData::Dumper -le 'push @{$a[2]}, ( 24, [ 1,2,3,4,5 ] ); print $a[2][0]'
24
explorer@next3:~> perl -MData::Dumper -le 'push @{$a[2]}, ( 24, [ 1,2,3,4,5 ] ); print $a[2][1][3]'
4
Coloreado en 0.004 segundos, usando
GeSHi 1.0.8.4
Lo mismo que antes, con push() metemos una lista en el tercero elemento de @a. Y esa lista está compuesta de dos elementos, un escalar y una referencia a otra lista. Se podría haber escrito también como:
$a[2] = [ 24, [ 1,2,3,4,5 ] ];
print $a[2][0]; # 24
print $a[2][1][1]; # 2Finalmente, para agregar más elementos a la lista que está dentro de la lista:
push @{$a[2][1]}, 7;
print $a[2][1][-1]; # 7 (Estamos pintando el último elemento de la lista (2º elemento) que está en el tercer elemento de @aRecetario de estructuras de datos en Perl.
Manipulando arrays de arrays.
PerlFAQ4.