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.txti 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
