Les subrutines són blocs de codi reutilitzables que permeten organitzar i modularitzar el codi en Perl. Aquestes són similars a les funcions en altres llenguatges de programació. En aquesta secció, aprendrem com definir, cridar i utilitzar subrutines en Perl.
Continguts
Definició de Subrutines
Per definir una subrutina en Perl, utilitzem la paraula clau sub
seguida del nom de la subrutina i un bloc de codi entre claus {}
.
Exemple
Crida a Subrutines
Per cridar una subrutina, simplement escrivim el seu nom seguit de parèntesis.
Exemple
Passar Arguments a Subrutines
Podem passar arguments a una subrutina posant-los dins dels parèntesis en el moment de la crida. Aquests arguments es passen a la subrutina com una llista.
sub suma { my ($a, $b) = @_; return $a + $b; } my $resultat = suma(3, 4); print "El resultat és: $resultat\n";
Explicació
@_
és una llista especial que conté els arguments passats a la subrutina.my ($a, $b) = @_;
assigna els arguments a variables locals$a
i$b
.
Valors de Retorn
Les subrutines poden retornar valors utilitzant la paraula clau return
.
sub multiplica { my ($a, $b) = @_; return $a * $b; } my $resultat = multiplica(5, 6); print "El resultat és: $resultat\n";
Explicació
return $a * $b;
retorna el producte dels dos arguments.
Variables Locals i Globals
Les variables dins d'una subrutina són globals per defecte, però podem fer-les locals utilitzant my
.
sub exemple { my $local = "Aquesta és una variable local"; $global = "Aquesta és una variable global"; } exemple(); print "$global\n"; # Funcionarà print "$local\n"; # Error: variable no definida
Explicació
my $local
crea una variable local.$global
és una variable global.
Exemples Pràctics
Exemple 1: Subrutina sense arguments
Exemple 2: Subrutina amb arguments
sub resta { my ($a, $b) = @_; return $a - $b; } my $resultat = resta(10, 4); print "El resultat de la resta és: $resultat\n";
Exemple 3: Subrutina amb variables locals
sub calcula_area { my ($ample, $alt) = @_; my $area = $ample * $alt; return $area; } my $area = calcula_area(5, 10); print "L'àrea és: $area\n";
Exercicis
Exercici 1
Defineix una subrutina salutacio
que prengui un nom com a argument i imprimeixi una salutació personalitzada.
Solució
Exercici 2
Crea una subrutina divisio
que prengui dos arguments i retorni el resultat de la seva divisió. Assegura't de gestionar la divisió per zero.
# Defineix la subrutina aquí # Crida a la subrutina my $resultat = divisio(10, 2); print "El resultat de la divisió és: $resultat\n";
Solució
sub divisio { my ($a, $b) = @_; if ($b == 0) { return "Error: Divisió per zero"; } return $a / $b; } my $resultat = divisio(10, 2); print "El resultat de la divisió és: $resultat\n";
Conclusió
Les subrutines són una eina poderosa per organitzar i modularitzar el codi en Perl. Hem après com definir, cridar i utilitzar subrutines, així com passar arguments i retornar valors. També hem vist com gestionar variables locals i globals dins de les subrutines. Practica amb els exercicis proporcionats per reforçar els conceptes apresos.
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