Els hashes són una estructura de dades fonamental en Perl que permeten emmagatzemar parelles clau-valor. A diferència dels arrays, que utilitzen índexs numèrics, els hashes utilitzen claus (keys) per accedir als seus valors associats. Això els fa molt útils per a situacions on necessitem una associació directa entre dos elements, com ara un diccionari.
Conceptes Clau
- Definició de Hashes: Un hash és una col·lecció de parelles clau-valor.
- Accés als Valors: Els valors es poden accedir mitjançant les seves claus.
- Manipulació de Hashes: Afegir, eliminar i modificar elements en un hash.
- Iteració sobre Hashes: Recórrer tots els elements d'un hash.
Definició de Hashes
En Perl, els hashes es defineixen utilitzant el símbol %
. Aquí teniu un exemple de com definir un hash:
En aquest exemple, les claus són 'apple', 'banana' i 'grape', i els valors associats són 'red', 'yellow' i 'purple', respectivament.
Accés als Valors
Per accedir a un valor en un hash, utilitzem la clau corresponent:
# Accés a un valor en un hash my $color = $fruits{'apple'}; print "The color of apple is $color\n"; # Output: The color of apple is red
Manipulació de Hashes
Afegir Elements
Podem afegir noves parelles clau-valor a un hash de la següent manera:
Modificar Elements
Per modificar un valor existent, simplement assignem un nou valor a la clau corresponent:
Eliminar Elements
Per eliminar una parella clau-valor, utilitzem la funció delete
:
Iteració sobre Hashes
Podem recórrer tots els elements d'un hash utilitzant un bucle foreach
:
Aquest codi imprimirà totes les parelles clau-valor del hash.
Exercicis Pràctics
Exercici 1: Creació i Accés a Hashes
- Defineix un hash anomenat
%capitals
que contingui les següents parelles clau-valor:- 'Spain' => 'Madrid'
- 'France' => 'Paris'
- 'Italy' => 'Rome'
- Accedeix i imprimeix el valor associat a la clau 'France'.
Solució
# Definició del hash my %capitals = ( 'Spain' => 'Madrid', 'France' => 'Paris', 'Italy' => 'Rome' ); # Accés al valor my $capital_of_france = $capitals{'France'}; print "The capital of France is $capital_of_france\n"; # Output: The capital of France is Paris
Exercici 2: Manipulació de Hashes
- Afegeix una nova parella clau-valor al hash
%capitals
: 'Germany' => 'Berlin'. - Modifica el valor associat a la clau 'Italy' per 'Rome'.
- Elimina la parella clau-valor amb la clau 'Spain'.
- Itera sobre el hash i imprimeix totes les parelles clau-valor.
Solució
# Afegir un nou element $capitals{'Germany'} = 'Berlin'; # Modificar un valor existent $capitals{'Italy'} = 'Rome'; # Eliminar un element delete $capitals{'Spain'}; # Iteració sobre el hash foreach my $country (keys %capitals) { print "$country => $capitals{$country}\n"; }
Errors Comuns i Consells
-
Ús de Claus Inexistents: Intentar accedir a una clau que no existeix en el hash retornarà
undef
. És important comprovar si una clau existeix abans d'accedir-hi.if (exists $capitals{'Portugal'}) { print "The capital of Portugal is $capitals{'Portugal'}\n"; } else { print "Portugal is not in the hash\n"; }
-
Confusió entre Arrays i Hashes: Recorda que els arrays utilitzen índexs numèrics mentre que els hashes utilitzen claus. Assegura't d'utilitzar el símbol correcte (
@
per arrays i%
per hashes).
Conclusió
Els hashes són una eina poderosa en Perl per gestionar dades associatives. Hem après com definir, accedir, manipular i iterar sobre hashes. Amb aquests coneixements, estàs preparat per utilitzar hashes en els teus projectes Perl per emmagatzemar i gestionar dades de manera eficient. En el següent tema, explorarem la gestió de fitxers en Perl, una habilitat essencial per a qualsevol programador.
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