Vlastní funkce v PERLu
Jako každý programovací jazyk, i PERL podporuje definování vlastních
funkcí. Funkce se definuje kdekoliv v texu a při běhu programu je prostě
ignorována až do té doby než je na ní odkaz. Výhodou PERLu je teké to,
že můžeme volat i funkce, které jsou definovány později - odkaz je tedy
blíže začátku programu, než definice funkce. PERL se v tom případě podívá
na zbytek programu aby funkci našel. Pokud jí nenajde hlásí chybu. Definice
funkce může vypadat následovně:
sub jméno
{
příkazy
.
příkazy
}
Pokud chceme, aby funkce dostávala nějaké parametry, nemusíme nic definovat.
Pouze stačí využít standartní proměné $_ nebo @_, která obsahuje
předané parametry jako skalár nebo jako pole. Pokud je parametrů
více, je nutno použít pole. Rozbor pole na jednotlivé prvky lze
provést následovně:
sub secti
{
($a,$b) = @_;
return ($a+$b);
}
Pokud používáme ve funkci nějaké promněné, můžeme je definovat jako
lokální a to tak, že před ně napíšeme klauzuli my.
sub secti
{
my ($a,$b) = @_;
return ($a+$b);
}
Vlastní volání funkce se provádí obdobně jako u standartních funkcí
PERLu, avšak před jméno se vždy píše znak &. Pokud tento znak
zapomenete, PERL chybu neohlásí, ale funkce se nezavolá. Pokud má funkce
parametry, píšeme je do kulatých závorek za jméno a oddělujeme čárkami.
Test na parametry se neprovádí. Je tedy jedno, jestli funkce dostane vůbec
nějaké parametry a už úplně je jedno jakého typu.
|