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