Assignació i variables
En els llenguatges de programació l'assignació és una operació que emmagatzema un valor en algun lloc de la memòria de l'ordinador al qual es pot accedir amb el seu nom.
A Perl 5 hi ha tres tipus de dades integrats: escalars,
vectors i diccionaris (o vectors associatius).
Els escalars poden contenir cadenes i números.
Els vectors són llistes ordenades d'escalars als quals s'accedeix amb un índex.
Els diccionaris són vectors associatius no ordenats en què s'utilitzen claus per accedir als valors.
Les variables que contenen escalars,
vectors o diccionaris duen el prefix $
,
@
i %
respectivament.
Les variables es declaren normalment utilitzant el mot my
.
Per exemple:
my $x = 1; say $x;
Exercici
Assigneu a una varibe y
la cadena 'Hola món!'
i imprimiu-la.
my $ say
Escalars
Depenent del que contingui la variable (un número o una cadena) hi ha diferents operadors que podeu utilitzar.
Diguem que voleu sumar dos valors numèrics:
my $x = 1; my $y = 2; say $x + $y;
O que voleu concatenar dues cadenes:
my $x = 'Hola'; my $y = 'vosaltres'; say $x . $y
Si provéssiu d'utilitzar +
a les cadenes o .
als números es convertirien automàticament al tipus adequat.
my $x = 1; my $y = '2 cops'; say $x . $y; say $x + $y;
Com podeu veure, al segon exemple la cadena '2 cops'
s'ha convertit en un número, en aquest cas 2.
Exercici
Concateneu i imprimiu la cadena 'Resultat='
i la suma de 42
i 13
.
my $x = ; my $y = ; say
Vectors
Els vectors poden contenir una llista d'escalars.
my @vector = (1, 2, 3); say @vector;
Les manipulacions bàsiques dels vectors inclouen obtenir un element amb l'índex (començant des del 0), obtenir el darrer índex, encuar i empilar valors.
my @vector = (1, 2, 3); # Obté el tercer element say $vector[2]; # Obté el darrer índex say $#vector; # Encua el valor 4 push @vector, 4; say @vector; # Desencua el darrer valor pop @vector; say @vector; # Desempila el primer valor shift @vector; say @vector; # Empila el valor 0 unshift @vector, 0; say @vector;
Probablement us haureu adonat que quan s'accedeix a un element d'un vector es canvia @
per $
, ja que l'element del vector és un escalar, i els escalars duen el prefix $
.
Exercici
Donat el vector que conté la llista (1, 2, 3, 4)
, imprimiu el tercer element.
my @vector = ; say
Diccionaris
Els diccionaris o vectors associatius són col·leccions no-ordenades d'escalars als que es pot accedir mitjançant una clau. Normalment la clau és una cadena de text.
my %diccionari = ('clau1', 'valor1', 'clau2', 'valor2');
Enlloc d'utilitzar la coma per a separar les claus i els valors, Perl proporciona =>
com a operador més llegible, per exemple:
my %diccionari = (clau1 => 'valor1', clau2 => 'valor2');
Manipulacions bàsiques dels diccionaris
Com en el cas dels vectors, quan s'accedeix a una clau d'un diccionari, la variable esdevé un escalar i per això s'utilitza el símbol $
i les claus {}
:
my %diccionari = (clau1 => 'valor1', clau2 => 'valor2'); say $diccionari{clau1};
Obtenir totes les claus i valors d'un diccionari
my %diccionari = (clau1 => 'valor1', clau2 => 'valor2'); say keys %diccionari; say values %diccionari;