El processament de dades és una de les aplicacions més comunes de Perl, gràcies a la seva potent capacitat de manipulació de text i la seva rica col·lecció de mòduls. En aquesta secció, explorarem com utilitzar Perl per processar diferents tipus de dades, incloent-hi fitxers de text, dades estructurades com JSON i XML, i dades provinents de bases de dades.

Continguts

Introducció al Processament de Dades

Perl és conegut per la seva capacitat de processar grans volums de dades de manera eficient. Algunes de les tasques comunes de processament de dades inclouen:

  • Lectura i escriptura de fitxers de text.
  • Manipulació de dades estructurades com JSON i XML.
  • Extracció i transformació de dades.
  • Interacció amb bases de dades.

Lectura i Escriptura de Fitxers de Text

Lectura de Fitxers

Per llegir un fitxer de text en Perl, utilitzem la funció open per obrir el fitxer i després llegim el seu contingut línia per línia. Aquí teniu un exemple:

# Obrir el fitxer per lectura
open(my $fh, '<', 'dades.txt') or die "No es pot obrir el fitxer: $!";

# Llegir el fitxer línia per línia
while (my $line = <$fh>) {
    chomp $line;  # Eliminar el salt de línia
    print "Línia: $line\n";
}

# Tancar el fitxer
close($fh);

Escriptura de Fitxers

Per escriure en un fitxer, utilitzem la funció open amb el mode d'escriptura (>). Aquí teniu un exemple:

# Obrir el fitxer per escriptura
open(my $fh, '>', 'sortida.txt') or die "No es pot obrir el fitxer: $!";

# Escriure dades al fitxer
print $fh "Aquesta és una línia de text.\n";
print $fh "Aquesta és una altra línia de text.\n";

# Tancar el fitxer
close($fh);

Processament de Dades Estructurades

JSON

Per treballar amb JSON en Perl, utilitzem el mòdul JSON. Aquí teniu un exemple de com llegir i escriure dades JSON:

use JSON;

# Convertir una cadena JSON a una estructura Perl
my $json_text = '{"nom": "Joan", "edat": 30}';
my $data = decode_json($json_text);

print "Nom: $data->{nom}\n";
print "Edat: $data->{edat}\n";

# Convertir una estructura Perl a una cadena JSON
my $perl_data = { nom => 'Maria', edat => 25 };
my $json_string = encode_json($perl_data);

print "JSON: $json_string\n";

XML

Per treballar amb XML, utilitzem el mòdul XML::Simple. Aquí teniu un exemple:

use XML::Simple;

# Llegir un fitxer XML
my $xml = XML::Simple->new;
my $data = $xml->XMLin('dades.xml');

print "Nom: $data->{persona}->{nom}\n";
print "Edat: $data->{persona}->{edat}\n";

# Escriure dades a un fitxer XML
my $perl_data = { persona => { nom => 'Anna', edat => 28 } };
$xml->XMLout($perl_data, OutputFile => 'sortida.xml');

Interacció amb Bases de Dades

Per interactuar amb bases de dades, utilitzem el mòdul DBI. Aquí teniu un exemple de com connectar-se a una base de dades SQLite, executar una consulta i processar els resultats:

use DBI;

# Connectar-se a la base de dades
my $dbh = DBI->connect("dbi:SQLite:dbname=dades.db", "", "", { RaiseError => 1 }) or die $DBI::errstr;

# Executar una consulta
my $sth = $dbh->prepare("SELECT nom, edat FROM persones");
$sth->execute();

# Processar els resultats
while (my @row = $sth->fetchrow_array) {
    print "Nom: $row[0], Edat: $row[1]\n";
}

# Tancar la connexió
$sth->finish;
$dbh->disconnect;

Exercicis Pràctics

Exercici 1: Lectura i Escriptura de Fitxers

  1. Escriu un programa que llegeixi un fitxer de text anomenat entrada.txt i escrigui el seu contingut en un fitxer anomenat sortida.txt, afegint un número de línia al començament de cada línia.

Solució:

open(my $in, '<', 'entrada.txt') or die "No es pot obrir el fitxer d'entrada: $!";
open(my $out, '>', 'sortida.txt') or die "No es pot obrir el fitxer de sortida: $!";

my $line_number = 1;
while (my $line = <$in>) {
    chomp $line;
    print $out "$line_number: $line\n";
    $line_number++;
}

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

Exercici 2: Processament de JSON

  1. Escriu un programa que llegeixi un fitxer JSON anomenat dades.json, modifiqui una de les seves claus i escrigui el resultat en un nou fitxer anomenat sortida.json.

Solució:

use JSON;

# Llegir el fitxer JSON
open(my $in, '<', 'dades.json') or die "No es pot obrir el fitxer JSON: $!";
my $json_text = do { local $/; <$in> };
close($in);

# Convertir a estructura Perl
my $data = decode_json($json_text);

# Modificar una clau
$data->{nom} = 'Pere';

# Convertir a JSON i escriure al fitxer
open(my $out, '>', 'sortida.json') or die "No es pot obrir el fitxer de sortida: $!";
print $out encode_json($data);
close($out);

Conclusió

En aquesta secció, hem après com utilitzar Perl per processar diferents tipus de dades, incloent-hi fitxers de text, dades JSON i XML, i dades de bases de dades. Hem vist exemples pràctics de lectura i escriptura de fitxers, manipulació de dades estructurades i interacció amb bases de dades. Els exercicis pràctics proporcionats us ajudaran a consolidar aquests conceptes i a aplicar-los en situacions reals.

© Copyright 2024. Tots els drets reservats