Perl

**Perl** - programski jezik čije je ime kratica od engl. "Practical Extraction and Report Language". Originalni autor Perla je Larry Wall, a prva inačica pojavila se 18. prosinca 1987. godine. Perl vuče svoje korijene iz drugih jezika kao što su primjerice C, sed, awk i Unix shell. Perl je danas ne samo programski jezik već i vrlo aktivna zajednica programera i korisnika. Odlikuje ga kvalitetan repozitorij gotovih programskih rješenja (CPAN - kratica od engl. "Comprehensive Perl Archive Network") što mu je ujedno i glavna prednost u odnosu na konkurentne jezike.

## Osobine Perla

Perl je prema svojim karakteristikama objektno orijentirani interpretirani programski jezik opće namjene s naglaskom na funkcionalnost, proširivost te laganu krivulju učenja. Perl je bio jezik izbora za razvoj WWW aplikacija sredinom 90-ih godina. Od samih svojih početaka to je jezik Unix i Linux sistemskih administratora koji ga koriste u svakodnevnom radu prvenstveno za automatizaciju procesa. Danas postoji i čitav niz korisničkih komercijalnih aplikacija pisanih u Perlu.

Izvedbena okolina istovjetna je istoimenom prevoditelju koji ima dvostruku namjenu: prevođenje izvornog koda u međuoblik pogodan za neposredno izvođenje (engl. code compilation) te samo izvođenje koda (engl. code execution). Obje funkcije dostupne su u svakom trenutku, odnosno Perl izvedbena okolina omogućava tvorenje novih Perl programa odnosno Perl funkcija u toku samog izvođenja. Time je Perl blizak i funkcionalnim programskim jezicima kao što su Smalltalk i Haskell.

Trenutna inačica Perla koja je danas u širokoj uporabi (Perl 5) ipak sadrži previše već ponešto zastarjelih programerskih tehnika, a zbog željene potpune kompatibilnosti sa starijim inačicama iz 80-ih godina pati i od izvjesnih nedostataka. Ovdje je potrebno napomenuti da je današnji stil programiranja u Perlu daleko od stila iz sredine 90-ih. Naglasak je prije svega na korištenju gotovih dobro testiranih korisničkih biblioteka dostupnih preko već spomenute CPAN arhive. Premda je Perl na glasu kao "kriptičan" jezik "hackera", uz nešto profesionalne discipline te pridržavanja određenih pravila programiranja, moguće je pisati vrlo pregledne i uredne programe.

## Sintaksa

### Varijable

U Perlu nije nužno deklarirati varijable prije njihove uporabe (tipično za interpretirane programske jezike), a tipovi varijabli se dinamički određuju.

Primjer:

U Pascalu je nužno definirati varijable (kao i njihov tip) prije uporabe, za mijenjanje tipa varijable koristimo funkcije npr. IntToStr() i StrToInt() koje nam vraćaju nove varijable.

**Pascal**


```
var
i: Integer;
s: String;

begin
   s:='0';
   i:=StrToInt(s);
   i:=i+1;
   s:=IntToStr(i);
   WriteLn(fFileName,s+' je jedan');
end
```


**Perl**


```
$s = '0';
print "s = $s\n";
$s = $s +1;
print "s = $s\n";

Ispis pri izvedbi:

s = 0
s = 1
```


U gornjem primjeru vidimo da je Perl kod bitno kraći, nema deklaracije varijabli, a tip varijabli se određuje dinamički (ako se koristi operator **+**, a sadržaj varijable je numerički, interpreter izvršava operaciju sumiranja bez obzira što je varijabla $s inicijalno definirana kao **string**. 

## Perl 6

Razvoj Perla dobio je novi zamah početkom 2001. godine kada je grupa programera okupljena oko Larrya odlučila pokrenuti novu inačicu pod nazivom Perl 6. Ta je nova inačica po svojim karakteristikama primjer programskog jezika za 21. stoljeće koji ujedinjava sva dobra svojstva modernih programskih jezika koristeći se novom (i nekompatibilnom s aktualnom inačicom) sintaksom i semantikom. Perl 6 će po svojoj arhitekturi biti donekle sličan .NET i Java okolinama s jednom bitnom razlikom: izvedbena okolina će umjesto stogovne tehnike koristiti tehniku virtualnog procesora. Time se Larry i zajednica nadaju bržem izvođenju programa i mogućnosti korištenja dobro poznatih i razrađenih metoda optimizacije prevođenja izvornog koda.

Perl 6 još nije dostupan, ali pojedini njegovi dijelovi su već daleko uznapredovali u razvoju. Perl 6 izvedbena okolina poznata pod nazivom Parrot će također omogućiti izvođenje programa pisanih u srodnim jezicima kao što su Python i Ruby. Perl 6 je po svim svojim značajkama potpuno novi programski jezik i izvedbena okolina te jedan od najvećih aktivnih open-source pothvata koji okuplja veliki broj talentiranih programera. Perl 6 je, prema riječima samog Larrya, potpuna obnova Perla i zajednice programera i korisnika.