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 redManipulació 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
%capitalsque 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 ParisExercici 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
