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 {}.

sub nom_de_la_subrutina {
    # Codi de la subrutina
}

Exemple

sub saluda {
    print "Hola, món!\n";
}

Crida a Subrutines

Per cridar una subrutina, simplement escrivim el seu nom seguit de parèntesis.

saluda();

Exemple

sub saluda {
    print "Hola, món!\n";
}

# Crida a la subrutina
saluda();

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

sub benvinguda {
    print "Benvingut al curs de Perl!\n";
}

benvinguda();

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.

# Defineix la subrutina aquí

# Crida a la subrutina
salutacio("Anna");

Solució

sub salutacio {
    my ($nom) = @_;
    print "Hola, $nom!\n";
}

salutacio("Anna");

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.

© Copyright 2024. Tots els drets reservats