Perl logo

[Perl] Arrays

Hasta ahora hemos visto los datos escalares, en los que el límite de almacenaje es un sólo elemento por variable. Para superar ese límite, entran en juego las listas.

Una lista o vector, es una colección ordenada de escalares (números o cadenas). A la variable que almacena una lista se le llama array.

Para definir un array, se usa el símbolo @ delante del nombre. Algunos ejemplos:

Para acceder a las variables que componen el array, se referencian por un índice numérico, que comienza en cero. Este índice se incluye al final de la variable entre corchetes ( [ ] ). También se cambia el símbolo @ por $, para indicar que queremos acceder al contenido de una posición del array, no al array completo.

Para conocer el índice al último elemento de un array, se utiliza el nombre de la variable precedida por los símbolos $#. Por lo tanto $#array + 1 indica el número de elementos de @array (los índices están en base 0).

Ordenando el array

Algunos operadores útiles para trabajar con arrays, son sort y reverse, que se encargan de ordenar los elementos de un array teniendo en cuenta su orden numérico o alfabético (según la tabla ASCII). Con ellos podemos hacer copias ordenadas hacia adelante o hacia atrás de los arrays:

Usando el array como una cola

Hemos visto que los arrays son contenedores ordenados de elementos. Hasta ahora los referenciábamos por un índice. Pero hay casos en que el índice no nos sea útil, y queramos utilizar los arrays como colas.

Las colas son secuencias de elementos, en las que lo que nos interesa es el principio y el fin de la lista, sin necesitar saber qué elementos hay en las posiciones intermedias. Un ejemplo sería una cola FIFO (del inglés First In First Out), en la que el primero que llega a la cola es el primero que sale de ella.

Los siguientes comandos nos permiten poner y quitar elementos al principio y al final de un array:

Comando Descripción
pop Saca el último elemento del array
push Inserta un elemento al final del array
shift Saca el primer elemento del array
unshift Inserta un elemento al principio del array

Ejemplo de uso de pop, push, shift, y unshift:

Convirtiendo entre arrays y strings

Los arrays son listas de variables simples, por lo que un sólo array puede contener múltiples cadenas de texto. Pero, ¿cómo hacemos si queremos unir todas esas cadenas de texto en una sola? Una forma sencilla de hacerlo es utilizar la función join.

 En este ejemplo, vemos el uso de join para unir los tres elementos del array en una sola cadena. El uso es simple, basta pasarle como parámetros el array del que tomar los valores, y el separador que queremos utilizar entre los elementos (en este caso coma y espacio). El resultado devuelto por la función es la cadena resultante.

Al igual que join nos permite unir varios strings en uno solo, la función split hace lo contrario, romper una cadena de texto en varias partes, entregando el resultado en un array. Ahora, como parámetros debemos pasar el separador existente en la cadena, y la propia cadena de texto, mientras que el resultado debemos recogerlo en un array. Vemos un ejemplo:


Imagen | xxx en Flickr

Deja un comentario