El procesamiento de datos es una de las áreas donde Perl brilla debido a su potente manejo de cadenas y expresiones regulares. En esta sección, aprenderemos cómo utilizar Perl para manipular, analizar y transformar datos de manera eficiente.

Contenido

Introducción al Procesamiento de Datos

El procesamiento de datos implica la manipulación de datos en bruto para convertirlos en información útil. Perl es especialmente adecuado para esta tarea debido a sus capacidades de manejo de texto y su flexibilidad.

Lectura y Escritura de Archivos

Lectura de Archivos

Para leer un archivo en Perl, utilizamos la función open y el operador de lectura <. Aquí hay un ejemplo básico:

# Abre el archivo 'data.txt' para lectura
open(my $fh, '<', 'data.txt') or die "No se pudo abrir el archivo: $!";

# Lee el archivo línea por línea
while (my $line = <$fh>) {
    print $line;
}

# Cierra el archivo
close($fh);

Escritura de Archivos

Para escribir en un archivo, utilizamos el operador de escritura >:

# Abre el archivo 'output.txt' para escritura
open(my $fh, '>', 'output.txt') or die "No se pudo abrir el archivo: $!";

# Escribe una línea en el archivo
print $fh "Esta es una línea de texto.\n";

# Cierra el archivo
close($fh);

Manipulación de Cadenas

Perl ofrece una variedad de funciones para manipular cadenas. Aquí hay algunas de las más comunes:

  • chomp: Elimina el carácter de nueva línea al final de una cadena.
  • substr: Extrae una subcadena de una cadena.
  • index: Encuentra la posición de una subcadena dentro de una cadena.

Ejemplo:

my $cadena = "Hola, Mundo!";
chomp($cadena);  # Elimina el carácter de nueva línea si existe
my $subcadena = substr($cadena, 0, 4);  # Extrae "Hola"
my $posicion = index($cadena, "Mundo");  # Encuentra la posición de "Mundo"
print "Subcadena: $subcadena\n";
print "Posición de 'Mundo': $posicion\n";

Uso de Expresiones Regulares

Las expresiones regulares son una herramienta poderosa para buscar y manipular texto. En Perl, se utilizan con el operador =~.

Ejemplo:

my $texto = "El precio es $100.";
if ($texto =~ /\$\d+/) {
    print "Encontrado un precio en el texto.\n";
}

En este ejemplo, la expresión regular \$\d+ busca una secuencia de dígitos precedida por un signo de dólar.

Procesamiento de Datos en Formato CSV

El formato CSV (Comma-Separated Values) es común para almacenar datos tabulares. Perl tiene módulos como Text::CSV para facilitar el trabajo con archivos CSV.

Ejemplo:

use Text::CSV;

my $csv = Text::CSV->new({ binary => 1 });
open my $fh, "<", "data.csv" or die "No se pudo abrir el archivo: $!";

while (my $row = $csv->getline($fh)) {
    print "Campo 1: $row->[0], Campo 2: $row->[1]\n";
}

close $fh;

Ejercicios Prácticos

Ejercicio 1: Lectura y Escritura de Archivos

Instrucciones:

  1. Lee un archivo llamado input.txt.
  2. Escribe cada línea del archivo en un nuevo archivo llamado output.txt, pero en mayúsculas.

Solución:

open(my $in, '<', 'input.txt') or die "No se pudo abrir el archivo: $!";
open(my $out, '>', 'output.txt') or die "No se pudo abrir el archivo: $!";

while (my $line = <$in>) {
    print $out uc($line);
}

close($in);
close($out);

Ejercicio 2: Procesamiento de Datos CSV

Instrucciones:

  1. Lee un archivo CSV llamado data.csv.
  2. Imprime cada fila en el formato "Campo 1: [valor], Campo 2: [valor]".

Solución:

use Text::CSV;

my $csv = Text::CSV->new({ binary => 1 });
open my $fh, "<", "data.csv" or die "No se pudo abrir el archivo: $!";

while (my $row = $csv->getline($fh)) {
    print "Campo 1: $row->[0], Campo 2: $row->[1]\n";
}

close $fh;

Conclusión

En esta sección, hemos explorado cómo Perl puede ser utilizado para el procesamiento de datos, incluyendo la lectura y escritura de archivos, la manipulación de cadenas, el uso de expresiones regulares y el manejo de datos en formato CSV. Estos conceptos son fundamentales para cualquier programador que trabaje con grandes volúmenes de datos.

En el siguiente módulo, profundizaremos en la programación avanzada en Perl, donde exploraremos temas como expresiones regulares avanzadas y la interacción con bases de datos.

© Copyright 2024. Todos los derechos reservados