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);