Les referències són una característica poderosa de Perl que permeten als programadors crear estructures de dades complexes, com ara arrays de hashes, hashes de arrays, i molt més. Les referències són essencials per a la programació avançada en Perl, ja que permeten manipular dades de manera més flexible i eficient.
Què és una Referència?
Una referència és un escalar que apunta a una altra variable o estructura de dades. En altres paraules, és un punter a una altra ubicació de memòria. Les referències es poden crear per a qualsevol tipus de dades en Perl: escalars, arrays, hashes, subrutines, etc.
Creació de Referències
Per crear una referència a una variable, utilitzem l'operador de referència \
. Aquí teniu alguns exemples:
# Referència a un escalar my $scalar = 10; my $scalar_ref = \$scalar; # Referència a un array my @array = (1, 2, 3); my $array_ref = \@array; # Referència a un hash my %hash = (key1 => 'value1', key2 => 'value2'); my $hash_ref = \%hash; # Referència a una subrutina sub hello { print "Hello, World!\n"; } my $sub_ref = \&hello;
Accés a Dades a través de Referències
Per accedir a les dades a través d'una referència, utilitzem l'operador de desreferència. Aquí teniu alguns exemples:
# Desreferenciar un escalar print $$scalar_ref; # Imprimeix 10 # Desreferenciar un array print @{$array_ref}; # Imprimeix 123 # Desreferenciar un hash print %{$hash_ref}; # Imprimeix key1value1key2value2 # Desreferenciar i cridar una subrutina &{$sub_ref}(); # Imprimeix Hello, World!
Referències Anònimes
Les referències anònimes són referències a estructures de dades que no tenen un nom explícit. Són molt útils per crear estructures de dades complexes. Aquí teniu alguns exemples:
# Referència anònima a un array my $anon_array_ref = [1, 2, 3]; # Referència anònima a un hash my $anon_hash_ref = {key1 => 'value1', key2 => 'value2'};
Estructures de Dades Complexes
Les referències permeten crear estructures de dades complexes, com ara arrays de hashes o hashes de arrays. Aquí teniu alguns exemples:
# Array de hashes my @array_of_hashes = ( {name => 'Alice', age => 30}, {name => 'Bob', age => 25}, ); # Accés a dades en un array de hashes print $array_of_hashes[0]->{name}; # Imprimeix Alice # Hash de arrays my %hash_of_arrays = ( group1 => [1, 2, 3], group2 => [4, 5, 6], ); # Accés a dades en un hash de arrays print $hash_of_arrays{group1}->[0]; # Imprimeix 1
Exercicis Pràctics
Exercici 1: Creació i Accés a Referències
- Crea una referència a un array que conté els números de l'1 al 5.
- Imprimeix el tercer element de l'array a través de la referència.
Solució:
# Creació de la referència my @numbers = (1, 2, 3, 4, 5); my $numbers_ref = \@numbers; # Accés al tercer element print $numbers_ref->[2]; # Imprimeix 3
Exercici 2: Estructures de Dades Complexes
- Crea un hash de arrays on cada clau és el nom d'un grup i el valor és una llista de membres del grup.
- Afegeix un nou membre a un dels grups.
- Imprimeix tots els membres d'un dels grups.
Solució:
# Creació del hash de arrays my %groups = ( group1 => ['Alice', 'Bob'], group2 => ['Charlie', 'David'], ); # Afegeix un nou membre a group1 push @{$groups{group1}}, 'Eve'; # Imprimeix tots els membres de group1 print join(", ", @{$groups{group1}}); # Imprimeix Alice, Bob, Eve
Resum
En aquesta secció, hem après què són les referències en Perl i com es poden utilitzar per crear estructures de dades complexes. Hem vist com crear referències a variables, com accedir a les dades a través de referències, i com treballar amb referències anònimes. També hem explorat com utilitzar referències per construir arrays de hashes i hashes de arrays. Aquestes habilitats són fonamentals per a la programació avançada en Perl i ens preparen per a temes més avançats en els següents mòduls.
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