# Početak

# Osnovno

# Instalacija

# Struktura programa

# Varijable

# Kontrolne strukture

# Funkcije >

# Regularni izrazi

# U/I operatori

# Sistemski operatori

# Želim znati više!

# HR Perl

Funkcije (podrutine)

Funkcije su osnovni element svakog programskog jezika. Najčešće se ponašaju poput običnih operatora čineći promjenu vrijednosti neke varijable ili vraćajući neku vrijednost koja se može pridjeliti nekoj drugoj varijabli. Osim toga, u određenom kontekstu funkcije izvode i kontrolu tijeka izvođenja programa (mijenjajući tijek programa od poziva fukcije, preko izraza kojima je definirana, pa nazad do točke od kuda je pozvana).

Perl podržava pisanje funkcija, no u vlastitoj terminologiji one se nazivaju podrutine. Razlog je taj što se pod fukcijama misli na predefinirane funkcije - operatore.

Detaljnije o samim ppodrutinama može se naći u perlsub man stranicama.

Definicija podrutine

Definicija podrutine označava se s oznakom sub nakon čega slijedi ime funkcije i blok izraza unutar vitičastih zagrada. Pozivom funkcije izvest će se taj blok izraza. Na primjer:

sub ime_funkcije {
	izraz_1;
	izraz_2;
	izraz_3;
}

Poziv podrutine

Podrutina se može pozivati unutar nekog izraza ili zasebno. Njen poziv se sastoji od znaka & iza kojeg slijedi ime podrutine:

&ime_funkcije

Ukoliko se u podrutinu prenose argumenti, oni se unose unutar zagrada:

&ime_funkcije("ognjen", 23)

Vraćanje vrijednosti

Podrutina uvijek vraća vrijednost zadnjeg izraza koji je izveden unutar podrutine. Na primjer:

sub aFunction {
     izraz_1;
     izraz_2;
     $a = $b + $c;
}

U prethodnom primjeru podrutina vraća vrijednost varijable $a. Nakon povratka iz podrutine, vraćena vrijednost nalazi se u posebnoj varijabli $_.

Argumenti podrutine

Argumenti podrutine prenose se u podrutinu putem posebne varijable @_ koja predstavlja polje argumenata. Na primjer:

sub zbroji {
     $_[0]+$_[1]
}

Podrutina vraća vrijednost zbroja dvaju brojeva koji se u nju prenose putem argumenata. Poziv te podrutine bi na primjer izgledao ovako:

&zbroji(2, 5)

Lokalne varijable

Sve varijable definirane unutar Perl programa su globalne varijable.

Za podrutine je moguće definirati lokalne varijable koje su vidljive samo unutar podrutine. Na taj način ne može doći do promjene globalnih varijabli ako slučajno imaju jednako ime kao i neka od lokalnih varijabli. Lokalne varijable definiraju se operatorom local():

sub neka_rutina {
     local ($A, $B);
     $A = $_[0];
     $B = $_[1];
}

&neka_rutina ($a, $b);

U prethodnom primjeru varijable unutar podrutine $A i $B će imati jednake vrijednosti kao i globalne varijable $a i $b. Bilo kakve promjene nad lokalnim varijablama neće utjecati na vrijednosti varijabli $a i $b.


Copyright © 2003 Ognjen Krkač
E-mail & MSN Messenger: ogy_1298@hotmail.com