Introducción
A continuación vamos a ver una a una todas las funciones de arreglo. Estas funciones nos permiten manejar nuestros arrays o arreglos.
Todas las funciones de arreglo son:
defined()
Sintáxis:
defined(VARIABLE);
Regresa verdadero si tiene un valor verdadero y no nulo, esta función también puede usarse para cualquier tipo de variable. Por ejemplo:
my @array = ('Hola');
print "Array existe" if defined(@array);
join()
Sintáxis:
join(CADENA,ARREGLO);
Regresa una cadena de la unión de todos los elementos del ARREGLO por la CADENA. Por ejemplo:
my @arreglo = ("A","B","C");
my $string = join(">>",@arreglo);
print "$string"; #Imprime A>>B>>C
map()
Sintáxis:
map(EXPRESIÓN,ARREGLO);
Evalúa la EXPRESIÓN para cada elemento de nuestro ARREGLO, asignando la variable especial $ a cada elemento del ARREGLO antes de evaluar la EXPRESIÓN. Por ejemplo:
my @clientes = ('Uriel','Daniel','Juan');
print "Uriel es un cliente" if map(/uriel/i,@clientes);
pack()
Sintáxis:
pack(CADENA,ARREGLO);
Crea un estructura binaria de los elementos en el ARREGLO, usando la CADENA como guía.
pop()
Sintáxis:
pop(ARREGLO);
Regresa el último valor del ARREGLO y reduce en uno su tamaño. Por ejemplo:
my @arreglo = ('1','2','3','4');
print pop(@arreglo); #Imprime 4
push()
Sintáxis:
push(ARREGLO1,ARREGLO2);
Agrega todos los elemento de ARREGLO2 a ARREGLO1. Por ejemplo:
my @array1 = ('Roma','Paris');
my @array2 = ('Tokyo','Cd. de México');
push(@array1,@array2);
print join("-", @array1);
#Imprime Roma-Paris-Tokyo-Cd de México
reverse()
Sintáxis:
reverse(ARREGLO);
Cuando se usa en un contexto de arreglo invierte los elementos del ARREGLO. Cuando es usado en un contexto escalar, el arreglo es convertido a una cadena y
ésta se invierte. Por ejemplo:
my @arreglo = ('1','2','3','4');
@arreglo = reverse(@arreglo);
#@arreglo = ('4','3','2','1');
scalar()
Sintáxis:
scalar(ARREGLO);
Evalúa el ARREGLO en un contexto escalar regresando el número de elementos en el ARREGLO. Por ejemplo:
my @clientes = ('Uriel','Juan','Pepe');
print "Tenemos " . scalar(@clientes) . " clientes\n";
shift()
Sintáxis:
shift(ARREGLO);
Regresa el primer elemento del ARREGLO y reduce en uno su tamaño. Por ejemplo:
my @clientes = ('Uriel','Juan','Pepe');
my $primer_cliente = shift(@clientes);
print $primer_cliente; #Imprime Uriel
sort()
Sintáxis:
sort(ARREGLO);
Regresa el ARREGLO con sus elementos ordenados por abecedario. Por ejemplo:
my @clientes = ('Uriel','Juan','Pepe','Alex','Bubba');
@clientes = sort(@clientes);
print join("-",@clientes);
splice()
Sintáxis:
splice(ARREGLO1,DESPLAZAMIENTO,LONGITUD,ARREGLO2);
Reemplaza elementos del ARREGLO1 con los elementos del ARREGLO2 determinados por el DESPLAZAMIENTO y la LONGITUD. Regresa la lista de elementos eliminados.
split()
Sintáxis:
split(PATRÓN,CADENA,LÍMITE);
Divide una CADENA de acuerdo al PATRÓN. En un entorno de arreglo regresá una arreglo de todos los elementos divididos, en un entorno escarla regresa el número de elementos regresados. Por ejemplo:
my $string = "A_B_C";
my @arreglo = split("_",$string);
#REGRESA @arreglo = ("A","B","C")
my $cadena = split("_",$string);
#REGRESA 3
undef()
Sintáxis:
undef(VARIABLE);
Regresa el valor indefenido. Hace indefenida a la variable, la cual debe de ser una escalar, un arreglo completo o un nombre de subrutina.
unpack()
Sintáxis:
unpack(CADENA,ARREGLO);
Realiza la acción contraria a la función pack().
unshift()
Sintáxis:
unshift(ARREGLO1,ARREGLO2);
Agrega los elementos de ARREGLO1 al principio de ARREGLO2, los elemento agregado mantienen su orden. Regresa el nuevo tamaño de ARREGLO1. Por ejemplo:
my @clientes = ('Uriel','Juan');
my @clientes2 = ('Pepe','Alex','Bubba');
unshift(@clientes,@clientes2);
print join("-",@clientes);