Subrutines

Les subrutines són funcions que accepten arguments i que poden retornar el resultat. Normalment les subrutines s'utilitzen per eliminar el codi duplicat, fent-lo més clar i entenedor.

Diguem que voleu convertir 5 milles a kilòmetres. Escriuríeu alguna cosa com aquesta:

# Convertir 5 milles a kilòmetres
say 5 * 1.609344

Però i si ara volguéssiu convertir 10 milles a kilòmetres o qualsevol altre número arbitrari? En aquest cas creem una subrutina que podem utilitzar després.

sub milles_a_kilometres {
    my ($milles) = @_;

    return $milles * 1.609344;
}

say milles_a_kilometres(5);
say milles_a_kilometres(10);
say milles_a_kilometres(42);

La subrutina necessita una mica d'explicació. my ($milles) = @_ s'anomena desempaquetament d'arguments. A Perl els arguments que es passen a una subrutina van a parar al vector per defecte @_ (aquesta també és una variable especial de Perl, com la $_). També podeu utilitzar totes les funcions específiques per als vectors sobre el vector per defecte, és clar.

Exercici

Escriviu i utilitzeu una subrutina que converteix kilòmetres a milles i imprimiu 4, 6, 9 kilòmetres convertits a milles (un kilòmetre són 0.621371192 milles).

sub kilometers_to_miles {
    my ...

    return ...
}

say kilometers_to_miles(4);
say kilometers_to_miles(6);
say kilometers_to_miles(9);