Perl proporciona las funciones push, pop, shift
y unshift
que permiten trabajar el array o lista como si de una pila o cola se tratase.
La función push tiene la sintáxis:
push(ARRAY,LIST)
empuja el valor de LIST  en el ARRAY. La longitud del ARRAY se incrementa en la longitud de 
LIST. Es lo mismo que hacer:
    for $value (LIST) {
            $ARRAY[++$#ARRAY] = $value;
    }
La función pop tiene la sintáxis:
pop(ARRAY) pop ARRAY
pop ARRAY tiene el mismo efecto que:
        $tmp = $ARRAY[$#ARRAY]; $#ARRAY--
Si no hay elementos en ARRAY, devuelve el valor undef.
Las funciones shift y unshift actuán de manera similar a
push y pop pero utilizando el comienzo de la lista en vez del final
de la misma.
Las funciones push, pop, shift y unshift
son un caso particular de la función  splice , la cual cambia 
los elementos de un ARRAY. La función splice toma 4 argumentos:
el ARRAY a modificar, el ındice OFFSET en el cual es modificado,
el número de elementos a suprimir LENGTH y la lista de elementos extra a insertar.
splice(ARRAY,OFFSET,LENGTH,LIST) splice(ARRAY,OFFSET,LENGTH) splice(ARRAY,OFFSET)
La función splice devuelve los elementos suprimidos del ARRAY. 
Si se omite LENGTH se suprime todo desde OFFSET
hacia adelante. Se cumplen las siguientes equivalencias
        push(@a,$x)           splice(@a,$#a+1,0,$x)
        pop(@a)               splice(@a,-1)
        shift(@a)             splice(@a,0,1)
        unshift(@a,$x)        splice(@a,0,0,$x)
        $a[$x] = $y           splice(@a,$x,1,$y);
No se puede acortar un  array asignando undef a sus elementos del final.
Para acortarlo se debe asignar $#a o utilizar un operador como pop
ó splice.
@a = 1 .. 10;
$a[9] = undef;  # @a = (1 ..9, undef)
$x = pop @a;    # @a = (1 ..9)
splice @a, -2;  # @a = (1 ..7) OFFSET = -2. Como se ha suprimido 
                # LENGTH, se suprime desde el penúltimo elemento
                #  hacia adelante
$#a = 4;        # @a = (1 ..5)
Casiano Rodríguez León
