Extracción de Información con Expresiones Regulares en Perl
Clase 22 de 29 • Curso de Expresiones Regulares
Resumen
¿Cómo utilizar Perl de manera funcional?
El lenguaje de programación Perl, aunque considerado antiguo y complejo, todavía sigue usándose ampliamente. Sin embargo, en este contexto, nos enfocaremos en su uso funcional y sencillo. A través de pasos claros y precisos, aprenderás a emplear Perl sin necesidad de sumergirte profundamente en su programación. Con este enfoque, podrás utilizar Perl para tareas específicas, como trabajar con expresiones regulares, de forma eficaz y directa.
¿Cómo iniciar un script en Perl?
Para iniciar un script en Perl, se debe comenzar con una línea específica que indica qué intérprete se debe usar. Además, es recomendable utilizar algunas directrices como el modo estricto y que los 'warnings' o advertencias se muestren en pantalla, en lugar de ser ignoradas. Esto es crucial para depurar y ajustar el código conforme sea necesario.
#!/usr/bin/perl
use strict;
use warnings;
Puedes incluir una variable para medir el tiempo de ejecución, especialmente útil si deseas comparar cómo diferentes lenguajes ejecutan la misma tarea.
my $start_time = time;
¿Cómo trabajar con archivos en Perl?
Abrir y leer archivos en Perl es bastante sencillo. Perl te permite iterar fácilmente sobre cada línea de un archivo utilizando su variable predeterminada. A continuación, verás cómo abrir un archivo y leer cada una de sus líneas:
open(my $fh, '<', 'results.csv') or die "No se pudo abrir el archivo";
while (my $line = <$fh>) {
print $line;
}
close($fh);
Para asegurarnos de que las líneas no contengan caracteres indeseados, utilizamos la función chomp
.
¿Cómo crear y utilizar expresiones regulares en Perl?
Las expresiones regulares en Perl se encierran entre slash (/
). Al utilizar la función m//
, podemos capturar patrones específicos dentro de las cadenas de texto. Te mostramos cómo buscar patrones en un csv:
if ($line =~ m/^(\d{4})-02-/) {
print "Partido en febrero: $line\n";
}
En este ejemplo, buscamos todos los partidos registrados en febrero, identificando las cadenas que empiezan con un año seguido del mes "02".
¿Cómo podemos contar coincidencias y no coincidencias en Perl?
Para contar las coincidencias (matches
) y no coincidencias (no matches
), podemos declarar variables contadoras e incrementar sus valores dependiendo de las condiciones del if
y else
.
my $match = 0;
my $no_match = 0;
if ($line =~ m/^(\d{4})-02-/) {
$match++;
} else {
$no_match++;
}
printf "Se encontraron %d coincidencias y %d no coincidencias\n", $match, $no_match;
¿Cómo extraer y formatear datos específicos utilizando Perl?
Una vez comprobadas las coincidencias, podemos extraer y formatear los resultados utilizando printf
para obtener un formato más legible y específico:
if ($line =~ m/^(\d{4})-(\d{2})-(\d{2}),([^,]*),([^,]*),(\d+),(\d+),(.+)/) {
my ($year, $home_team, $away_team, $home_score, $away_score) = ($1, $4, $5, $6, $7);
if ($away_score > $home_score) {
printf "%s ganó a %s por %d a %d en %s\n", $away_team, $home_team, $away_score, $home_score, $year;
}
}
¿Cómo medir el tiempo de ejecución en Perl?
Finalmente, podemos calcular y mostrar el tiempo necesario para ejecutar el script. Esta técnica nos ayudará a evaluar la eficiencia de nuestro código.
my $end_time = time;
printf "El script tardó %d segundos en ejecutarse\n", $end_time - $start_time;
Al seguir este procedimiento, puedes realizar tareas complejas de procesamiento de datos de manera eficiente y rápida utilizando Perl. Aunque a veces Perl pueda parecer críptico, la práctica y un enfoque paso a paso pueden ayudarte a dominar este poderoso lenguaje de scripting. Te animamos a seguir explorando las posibilidades que ofrece Perl y otros lenguajes en el mundo de la programación.