lunes, septiembre 18, 2006

Guía del Lenguaje Perl - 2da parte

Arreglos en Perl

Arreglos Indexados

En Perl los arreglos son listas de datos sin importar su tipo, es decir que puede estar compuestos por enteros flotantes, cadenas, o incluso otros arreglos, cada elemento es considerado como una variable independiente. El carácter $ se utiliza para referirse a un elemento en particular y el carácter @ para todos. El primer elemento de un arreglo es el indicado con 0 (cero).

$arreglo[$i+2] = 3; # Instancia el elemento $i+2 con el valor 3.
@arreglo = ( 1, 3, 5 ); # Inicializa el arreglo llamado arreglo
@arreglo = ( ); # Inicializa un arreglo vacío.
@foo = @bar; # copia el arreglo.
@foo = @bar[$i..$i+5]; # copia una parte del arreglo.
$numero = $#arreglo; # el numero se almacena el valor de índice más alto
# definido. Es decir la cantidad de elementos del arreglo-1


Arreglos n-dimensionales

En la siguiente instrucción se define un arreglo de 4 filas por 3 columnas -recordar que en Perl un arreglo comienza con el índice numérico 0-

@arreglo = ( [1, 2, 3], [4, -5, 6], [7, 8, 9], [10, 11, 12]);

print $arreglo[3][1]."\n"; # Imprime 11

Un arreglo no es más que una lista donde un elemento n puede ser a su vez otro arreglo, por lo tanto no es necesario que todas las filas tengan la misma longitud.

@m1 = ( 1 , "maria" );
@m2 = ( "pablo", "guillermo", "silvina" );
@m3 = ( "rosa", "agustin" , 3 );
@m = ( [@m1], [@m2], [@m3] );

print $m[2][1]."\n"; # Imprime agustin

Para determinar la cantidad de filas y columnas se utiliza:

print $#arreglo."\n"; # Brinda la cantidad de filas-1 del arreglo
print $#{$arreglo[1]}."\n"; # Brinda la cantidad de elementos-1 de la fila 1

Ejemplo: Programa que imprime un arreglo bidimensional.

@arreglo = ( [1, 2, 3], [4, -5, 6], [7, 8, 9, 99, 999], [10, 11, 12]);

for($i=0; $i<=$#arreglo; $i++) {

for($j=0; $j<=$#{$arreglo[$i]}; $j++) {print $arreglo[$i][$j]."\t"};
print "\n";
}

Un arreglo de tres dimensiones puede definirse de la siguiente manera

@arreglo = ( [[1,2,3], [4,5,6], [7,8,9] ],
[["a","b","c"],["d","e","f"], ["g","h","i"] ],
[[-1,-2,-3], [-4,-5,-6], [-7,-8,-9] ]
);

print $arreglo[0][1][2]."\n"; # Imrpime 6
print $arreglo[2][2][1]."\n"; # Imprime -8

No hay comentarios.: