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$ai$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 definidaExplicació
my $localcrea 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
