home *** CD-ROM | disk | FTP | other *** search
- <HTML>
- <HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (Win95; I) [Netscape]">
- <META NAME="Author" CONTENT="Tomas Rosa">
- <TITLE>Podprogramy</TITLE>
-
- <!--#include virtual="/perl_header.inc"-->
-
- <div style="font-family:Tahoma,Helvetica,Arial; font-size:10pt;">
-
- <h3>Vlastnφ funkce v PERLu</h3>
-
- 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∞:</P>
-
- <UL>
- <UL>
- <PRE><B>sub jmΘno
- {
- </B> p°φkazy
- .
- p°φkazy
- <B>}</B></PRE>
- </UL>
- </UL>
-
- <P>Pokud chceme, aby funkce dostßvala n∞jakΘ parametry, nemusφme nic definovat.
- Pouze staΦφ vyu₧φt standartnφ prom∞nΘ <B>$_</B> nebo <B>@_</B>, kterß obsahuje
- p°edanΘ parametry jako <I>skalßr</I> nebo jako <I>pole</I>. Pokud je parametr∙
- vφce, je nutno pou₧φt <I>pole</I>. Rozbor pole na jednotlivΘ prvky lze
- provΘst nßsledovn∞:</P>
-
- <UL>
- <UL>
- <PRE>sub secti
- {
- <B>($a,$b) = @_;
- </B> return ($a+$b);
- }</PRE>
- </UL>
- </UL>
-
- <P>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 <B>my</B>. </P>
-
- <UL>
- <UL>
- <PRE>sub secti
- {
- <B>my</B> ($a,$b) = @_;
- return ($a+$b);
- }</PRE>
- </UL>
- </UL>
-
- <P>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 <B>&</B>. 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.</P>
-
- </div>
-
- <!--#include virtual="/main_footer.inc"-->