Bienvenido/a a los foros de Perl en Español, alexismoran72.
En Perl cuentas con los arrays para guardar información de forma reglada (indexada). Imagínate que los array son vectores o matrices: cada elemento sigue al anterior. El primer elemento tiene índice 0 y el límite superior está determinado por la cantidad de memoria disponible.
Using perl Syntax Highlighting
# Declaración
my @array; # Declaramos que '@array' es un array, es decir, es un contenedor de una "lista de elementos"
# Una "lista de elementos" es entre 0 elementos y el resto de la memoria del computador
(1, 2, 5, 42, "La casa de la abuela", 0xABADBEBECAFE);
# Definición
# Definimos el contenido de un array asignando (=) una lista de elementos al array
@array = (1, 2, 5, 42, "La casa de la abuela", 0xABADBEBECAFE);
# Salida de todo el array
say @array; # Salida directa: 12542La casa de la abuela188762717866750 (salen todos seguidos)
say "@array"; # Salida interpolada: 1 2 5 42 La casa de la abuela 188762717866750 (salen separados con el separador por defecto)
# Número de elementos
# Tratar el array en contexto escalar:
my $numero = @array; # $numero contendrá en este caso, 6
# Acceso al contenido
# El sigilo '@' indica "pluralidad", mientras que el sigilo '$' indica 'singularidad'.
# Cuando accedemos a varios elementos del array, necesitamos poner '@' delante.
# Si sólo accedemos a un elemento, necesitamos poner '$' delante.
# Acceso a un elemento
say $array[3]; # Salida del cuarto elemento (recordar que empiezan en 0)
$array[1] = 'Camión'; # Modificación del segundo elemento
$array[-1] = 'FIN'; # Modificación del "último" elemento
# Acceso a varios elementos
my($x, $y, $z) = @array[0,2,3]; # los elementos 0, 2 y 3 se asignan a las variables escalares
my @extracto = @array[3..5]; # los elementos 3, 4 y 5 se asignan a la variable array
Coloreado en 0.007 segundos, usando
GeSHi 1.0.8.4
Acceso en forma de cola o pila:
En Perl contamos con 8 funciones para modificar o acceder al contenido de un array, simulando una cola o una pila. Esas funciones son:
Using text Syntax Highlighting
each : Permite recorrer un array; nos devuelve el índice y el valor de cada posición.
keys : Devuelve una lista con los índices de las posiciones (realmente, 0, 1, 2, 3...)
values : Devuelve una lista con los valores de las posiciones (realmente, igual que pedir @array)
push : Agrega un elemento AL FINAL de la lista de elementos
pop : Extrae un elemento DEL FINAL de la lista de elementos
shift : Extrae un elemento DEL PRINCIPIO de la lista de elementos
unshift: Agrega un elemento AL PRINCIPIO de la lista de elementos
splice : Permite extraer, modificar o agregar elementos en cualquier posición de la lista de elementos
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Estas últimas (pop, push, shift y unshift) son las que utilizarás para simular una pila.
Using perl Syntax Highlighting
my @pila; # empezamos con una pila vacía
# Para apilar, usar push
push @pila, 42; # la función push() devuelve el número de elementos del array, pero en este ejemplo no lo usaremos
push @pila, 37;
push @pila, '+';
# Para desapilar, usar pop
my $elemento = pop @pila;
# Para usar un array como una cola, usar push() para apilar y shift() para desapilar.
push @pila, 37;
my $siguiente = shift @pila;
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Tienes una introducción a los array en perldoc
perlintro. Toda la información sobre los arrays en
perldata. Introducción a las estructuras de datos en
perldsc. Estructuras más complejas en
perllol. Detalle completo de las referencias en
perlref y
perlreftut.