home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 April / PCWorld_2000-04_cd.bin / Komunik / Servery / PinkNet / pnws1076prof.exe / file0057.bin < prev    next >
Encoding:
Text File  |  2000-03-12  |  2.1 KB  |  71 lines

  1. <HTML>
  2. <HEAD>
  3.    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250">
  4.    <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (Win95; I) [Netscape]">
  5.    <META NAME="Author" CONTENT="Tomas Rosa">
  6.    <TITLE>Podprogramy</TITLE>
  7.  
  8. <!--#include virtual="/perl_header.inc"-->
  9.  
  10. <div style="font-family:Tahoma,Helvetica,Arial; font-size:10pt;">
  11.  
  12. <h3>Vlastnφ funkce v PERLu</h3>
  13.  
  14. Jako ka₧d² programovacφ jazyk, i PERL podporuje definovßnφ vlastnφch
  15. funkcφ. Funkce se definuje kdekoliv v texu a p°i b∞hu programu je prost∞
  16. ignorovßna a₧ do tΘ doby ne₧ je na nφ odkaz. V²hodou PERLu je tekΘ to,
  17. ₧e m∙₧eme volat i funkce, kterΘ jsou definovßny pozd∞ji - odkaz je tedy
  18. blφ₧e zaΦßtku programu, ne₧ definice funkce. PERL se v tom p°φpad∞ podφvß
  19. na zbytek programu aby funkci naÜel. Pokud jφ nenajde hlßsφ chybu. Definice
  20. funkce m∙₧e vypadat nßsledovn∞:</P>
  21.  
  22. <UL>
  23. <UL>
  24. <PRE><B>sub jmΘno
  25. {
  26. </B>  p°φkazy
  27.   .
  28.   p°φkazy
  29. <B>}</B></PRE>
  30. </UL>
  31. </UL>
  32.  
  33. <P>Pokud chceme, aby funkce dostßvala n∞jakΘ parametry, nemusφme nic definovat.
  34. Pouze staΦφ vyu₧φt standartnφ prom∞nΘ <B>$_</B> nebo <B>@_</B>, kterß obsahuje
  35. p°edanΘ parametry jako <I>skalßr</I> nebo jako <I>pole</I>. Pokud je parametr∙
  36. vφce, je nutno pou₧φt <I>pole</I>. Rozbor pole na jednotlivΘ prvky lze
  37. provΘst nßsledovn∞:</P>
  38.  
  39. <UL>
  40. <UL>
  41. <PRE>sub secti
  42. {
  43.  <B>($a,$b) = @_;
  44. </B> return ($a+$b);
  45. }</PRE>
  46. </UL>
  47. </UL>
  48.  
  49. <P>Pokud pou₧φvßme ve funkci n∞jakΘ promn∞nΘ, m∙₧eme je definovat jako
  50. lokßlnφ a to tak, ₧e p°ed n∞ napφÜeme klauzuli <B>my</B>. </P>
  51.  
  52. <UL>
  53. <UL>
  54. <PRE>sub secti
  55. {
  56.  <B>my</B> ($a,$b) = @_;
  57.  return ($a+$b);
  58. }</PRE>
  59. </UL>
  60. </UL>
  61.  
  62. <P>Vlastnφ volßnφ funkce se provßdφ obdobn∞ jako u standartnφch funkcφ
  63. PERLu, avÜak p°ed jmΘno se v₧dy pφÜe znak <B>&</B>. Pokud tento znak
  64. zapomenete, PERL chybu neohlßsφ, ale funkce se nezavolß. Pokud mß funkce
  65. parametry, pφÜeme je do kulat²ch zßvorek za jmΘno a odd∞lujeme Φßrkami.
  66. Test na parametry se neprovßdφ. Je tedy jedno, jestli funkce dostane v∙bec
  67. n∞jakΘ parametry a u₧ ·pln∞ je jedno jakΘho typu.</P>
  68.  
  69. </div>
  70.  
  71. <!--#include virtual="/main_footer.inc"-->