Podprogramy

Deklarace a definice podprogramu

sub funkce;           # dopředná deklarace
...
...
sub funkce BLOK       # definice funkce

sub funkce2 ($);      # deklarace s prototypem
...
...
sub funkce2 ($) BLOK; # definice
Podprogramy mohou být definovány kdekoliv v těle programu, ne tedy nutně na začátku. Voláme-li funkci ještě před její definicí, je nutné argumenty uzavřít do kulatych závorek. Výjimkou je, provedeme-li před voláním funkce dopřednou deklaraci. V tom případě závorky nejsou nutné. Je třeba řídit se pouze prioritou operátorů ve výrazu, v němž byla funkce použita.
sub soucet;           # dopředná deklarace

soucet 1,2,3;         # můžeme volat bez závorek 

sub soucet {          # definice funkce
     $s = 0;
     $s += $_ for @_;
     print $s
}

soucin 1,2,3;         # CHYBA, volání nedefinované funkce
                      # muselo by být soucin(1,2,3)

sub soucin {          # definice funkce
     $s = 1;
     $s *= $_ for @_;
     print $s;
}

Argumenty funkcí