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 1Exercicis 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, EveResum
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
