Introducción
Después de hacer varios tutoriales para programadores de perl con experiencia, decidí hacer algunos sumamente básicos, para todos ustedes que esten en sus primeros pasos con perl.
En este tutorial vamos a ver dos funciones que se relacionan, la función split y el join.
Función split
La función split nos sirve para separar por medio de expresiones regulares un string o cadena en varios elementos.
Por ejemplo digamos que tenemos la siguiente variable:
my $personajes = "Mickey Pluto Donald Bambi Dumbo";
Ahora si quisieramos llenar un array con los personajes lo podríamos hacer de la siguiente manera:
my @personajes = split(/\s+/, $personajes);
Listo ahora nuestro array tendría todos los personajes, uno por cada elemento del array, por lo que si quisieramos llamar a Pluto pondríamos:
$personajes[1];
Fácil no, ahora veamos la sintáxis del split.
El split tiene dos partes:
split([expresion|cadena], [variable]);
El primer elemento es la expresion o cadena con la que queremos separar, la variable que pones después de la coma. En el primer ejemplo vimos como hacer el split con expresión regular, pero digamos que hay algo más sencillo, como lo siguiente:
my $informacion = "Uriel,Lizama,19";
Aquí tenemos una cadena con un registro donde los datos estan separados por una coma, así que podríamos hacer el split de la siguiente manera:
my @data = split(",", $informacion);
Vemos ahora como en vez de una expresión regular pusimos la coma entre comillas, para decirle a perl que queremos dividir nuestra cadena por comas.
Ahora, también el split lo podríamos hacer de la siguiente manera:
my($nombre,$apellido,$edad) = split(",", $informacion);
Vemos como en vez de asignar los elementos a un array lo hacemos directamente a unas variables.
Como ven es sumamente sencillo, pero les va a ser muy útil más cuando manejen base de datos con archivos de texto o cualquier cosa en la que necesiten el split.
Función join
Ya vimos como separar cadenas en array, ahora vamos a ir del otro lado, vamos a aprender a crear una cadena con un array.
Digamos que tenemos el siguiente array:
my @palabras = ("Hola","me","llamo","Uriel");
Es un simple array con palabras, ahora podemos unirlas en una misma cadena de la siguiente manera:
my $frase = join(" ", @palabras);
print "$frase\n";
Van a ver como al imprimir la frase el resultado será:
Hola me llamo Uriel
Vemoas la sintáxis de la función join:
join("[cadena]", [array]);
Es muy sencillo, entre comillas ponemos la cadena con la que queremos unir cada elemento del array que indicamos después de la coma.
Veamos otro ejemplo, tenemos el siguiente array:
my @nombres = ("Uriel","Esteban","Juan");
Y ahora le hacemos un join:
print join("\n", @nombres);
¿Puedes adivinar cuál será el resultado?
La respuesta correcta es:
Uriel
Esteban
Juan
Como ves en vez de asignar el join a una variable lo hacemos directamente al print, y como ves el join lo hicimos con \n que significa nueva linea...más sencillo no se puede.
Notas Finales
Ya saben que la práctica hace al maestro así que ponganse a prácticar ensayen, hagan pruebas y verán como dentro de un poco tiempo manejarán el split y el join como expertos.