miércoles, 27 de marzo de 2013

Tutorial Array de Arrays Perl Unix


Creo que ya hemos hablado de listas de listas en Python ahora vamos a hablar un poco de como se crean estructuras de arrays verticales,osea Arrays de Arrays o como les digo Arrays anidadas,esto nos servirá para almacenar datos en una sola lista de arrays y no perdernos tanto cuando ya tenemos cierto numero de arreglos en nuestro script/programa, por ejemplo si ya tengo dos arreglos de dos versiones de sistemas:

my @windows = ("XP","Vista","Seven");

Y uno de Mac:

my @Mac = ("Leopard","Lion","Tiger");

Podemos meterlos en otro array que se llame sistemas, por ejemplo

my @sistemas = # Seguir leyendo

Para crear un llamado array anidado debemos definir primero nuestros arrays horizontales,como lo hice arriba, y después llenar el array con esta sintaxis

my @ArrayDarrays = (\@array1,\@array2,\@etc);

Este carácter (\) se usa para referenciar un valor,en este caso estamos referenciando dos array's a otro.

Para llamar nuestros arrays es igual que siempre:

print "$array[valor]"; 

Como vimos anteriormente en donde valor es el numero del elemento del array,contando de izquierda a derecha comenzando por el cero.

En los Arrays anidados es así

$arrayA[Avalor][valor]; # (A es Anidado)

El Avalor es el valor del array dentro del array anidado,igual partiendo de izquierda a derecha desde el cero,y en el valor es el valor del array del Avalor,por ejemplo:

¿esto que da como resultado?

#/usr/bin/env perl

use strict;

my @sistemas = qw(Mac Windows);
my @windows = qw(XP Vista Seven);
my @Mac = qw(Leopard Lion Tiger);

my @OS = (\@sistemas,\@windows,\@Mac);

print "Mi sistema de escritorio es " . "$OS[2][1]" . " de " . "$OS[0][0]\n";


Si pensaste que la respuesta es

Mi sistema de escritorio es XP de Windows

Estas equivocado,la respuesta es



Mi sistema de escritorio es Lion de Mac

Aunque uso Gentoo....

Bien,para recorrer todo el Array de Arrays lo hacemos igual que con un array normal,solo que también anidado,por ejemplo foreach anidado en while:






Esto lo vamos a ver cuando haga un tutorial de referencias,ya que no lo he hecho,pero aqui les dejo un ejemplo que esta hasta abajo de como es una referencia simple


#/usr/bin/env perl

use strict;

my @sistemas = qw(Mac Windows);
my @windows = qw(XP Vista Seven);
my @Mac = qw(Leopard Lion Tiger);
my @OS = (\@sistemas,\@windows,\@Mac);

print "Mi sistema de escritorio es " . "$OS[2][1]" . " de " . "$OS[0][0]\n";

my $i = 0; my $n = 0;

while ($i < $#OS+1 ) {
foreach $n (0..@{$OS[$i]}-1) {
print "Mi sistemas son $OS[$i][$n]\n";
}
$i+=1;
}
my $referencia = \@OS;
print "Referencia" . " $referencia->[0]->[0]" . "\n";


No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.