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
- Escriu un programa que llegeixi un fitxer de text anomenat
entrada.txt
i escrigui el seu contingut en un fitxer anomenatsortida.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
- 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 anomenatsortida.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.
Curs de Programació en Perl
Mòdul 1: Introducció al Perl
Mòdul 2: Programació Bàsica en Perl
Mòdul 3: Treballant amb Dades
Mòdul 4: Programació Intermèdia en Perl
Mòdul 5: Programació Avançada en Perl
- Expressions Regulars Avançades
- Interacció amb Bases de Dades amb DBI
- Programació Web amb Perl
- Multifil