Podprogramy
Podprogramy umožňují programátorovi rozčlenit celý program do menších částí, které slouží k tomu, aby byly opakovaně používány, nebo pouze k tomu, aby se zápis programu zpřehlednil. Mají svá vstupní data, výstupní data a svůj vlastní algoritmus, který vstupní data transformuje na výstupní. Některé programovací jazyky nabízejí různé druhy podprogramů - typ „procedura“ a typ „funkce“. Procedura jsou podprogram bez návratové hodnoty, tzn. že na základě zadaných údajů pouze vykoná určitou činnost. Funkce je charakteristická tím, že vždy nějakou hodnotu vrací.V Perlu existují pouze podprogramy typu funkce. Je to proto, že program v Perlu se skládá především z výrazů a každý podprogram je součástí nějakého výrazu. Funkce vrací hodnotu vždy, i když tato hodnota není k ničemu potřeba (tzn. že funkce je použita jako procedura). Proto je v terminologii Perlu možné pojem podprogram a funkce vzájemně zaměňovat.
V Perlu existují předdefinované funkce, které se chovají jako operátory. Programátorovi je také umožněno, aby si definoval své vlastní funkce. Jejich definice se mohou nacházet kdekoliv v programu, nebo může být do programu vtažena z jiného modulu pomocí „use“ či „require“. Není tedy striktně nařízeno, kde a jak má být funkce definována. Existuje pouze několik omezení, se kterými se seznámíme za chvíli.
Pokud nemluvíme o anonymním podprogramu, každý podprogram má své jméno — je to řetězec podobně jako jméno proměnné. Jméno funkce obsahuje na začátku také znak &. Použití tohoto znaku je většinou nepovinné a nutnost jeho použití je závislá na tom, jak je jméno použito. Nezbytné je použít tento symbol v případě, že potřebujeme funkci pouze pojmenovat — děje se to v případech, kdy vytváříme odkaz na podprogram ($ odkaz = &funkce) nebo když je jméno funkce parametrem funkcí „defined“ nebo „unrer“.
Voláním podprogramu se rozumí použití jména podprogramu tak, že je předáno řízení podprogramu a po vyhodnocení posledního výrazu je řízení včetně návratové hodnoty vráceno zpět.
A to by bylo pro dnešek všechno. V dalším díle se podíváme na definici, deklaraci a volání podprogramu (funkce). V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman