Perl: razlika između inačica

Izbrisani sadržaj Dodani sadržaj
m Bot: reflist -> reference
Nema sažetka uređivanja
Redak 1:
'''Perl''' je [[programski jezik]] opće namjene. 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_(programski_jezik)|C]], [[sed]], [[awk]] i [[Unix]] [[shell|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.programs
 
== Ime ==
 
Prvotno ime jezika bilo je ''pearl'', a Larry Wall ga je je preimenovao u ''Perl'' nakon otkrića da već postoji jezik [[PEARL|PEARL]]. ''Perl'' se često tumači (i u službenoj dokumentaciju) kao "Practical Extraction and Report Language" premda nije [[akronim|akronim]].<ref>[http://perldoc.perl.org/perlfaq1.html#What%27s-the-difference-between-%22perl%22-and-%22Perl%22%3f "What's the difference between 'perl' and 'Perl'?"]</ref>
 
== Osobine Perla ==
 
Perl je prema svojim karakteristikama [[Objektno orijentirano programiranje|objektno orijentirani]] 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|Smalltalk]] i [[Haskell_(programski_jezik)|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 ==
gdtr
 
Sintaksa Perla vuče svoje korijene iz [[C_(programski_jezik)|C]] jezika, i mnogo konstrukti (petlje, uvjeti) iz [[C_(programski_jezik)|C]] jezika se mogu slično napisati u Perlu.
 
=== Varijable ===
 
U Perlu nije nužno deklarirati varijable prije njihove uporabe, premda se to preporučuje.<ref>[http://perldoc.perl.org/perlintro.html#Safety-net "perlintro: safety-net]</ref>
Tipovi varijabli dinamički se određuju tijekom izvršavanja programa.
 
Primjer:
 
U [[Pascal]]u 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'''
 
<source lang="pascal">
var
i: Integer;
s: String;
 
begin
s:='0';
i:=StrToInt(s);
i:=i+1;
s:=IntToStr(i);
WriteLn(fFileName,s+' je jedan');
end
</source>
 
'''Perl'''
 
<source lang="perl">
my $s = '0';
print "s = $s\n";
$s = $s + 1;
print "s = $s\n";
</source>
 
Ispis pri izvedbi:
 
<pre>
s = 0
s = 1
</pre>
 
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 [[Perl6_(programski_jezik)|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.<ref>[http://dev.perl.org/perl6/architecture.html "Perl6 Architecture"]</ref> Perl 6 će po svojoj arhitekturi biti donekle sličan [[.NET]] i [[Java_(programski_jezik)|Java]] okolinama s jednom bitnom razlikom: izvedbena okolina će umjesto [[stogovna_tehnika|stogovne tehnike]] koristiti [[tehnika_virtualnog_procesora|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|Parrot]] će također omogućiti izvođenje programa pisanih u srodnim jezicima kao što su [[Python_(programski_jezik)|Python]] i [[Ruby_(programski_jezik)|RubyRubyzste vhgbvste hjmirsoačkgćwojgoijgi3ojgijrjirwijgpirpp2r2gv]]. 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.
 
Od 2008. godine, jedna od implementacija Perl 6 jezika je i Rakudo <ref>[http://www.rakudo.org/2008/01/the-compiler-formerly-known-as.html "The compiler formerly known as 'perl6'"]</ref> koja se pokreće na [[Parrot|Parrot]] okolini i koja se aktivno razvija od strane Perl 6 zajednice. Rakudo, od prosinca 2008. godine, prolazi testiranje za preko 50% specifikacija jezika Perl 6.<ref>[http://use.perl.org/~pmichaud/journal/38083 "Rakudo now passing over 5,000 spectests"]</ref>
Line 112 ⟶ 56:
[[la:Perl]]
[[lb:Perl (Programméiersprooch)]]
[[lt:PerlPerlrgtz9oPerl]]
[[ml:പേള്‍]]
[[ms:Perl]]
[[nl:Perl (programmeertaal)]]
[[nn:Perl]]
[[no:Perl]]
[[pdc:Perl]]
[[pl:Perl]]
[[pt:Perl]]
[[ro:Perl]]
[[ru:Perl]]
[[sh:Perl]]
[[simple:Perl]]
[[sk:Perl]]
[[sl:Perl]]
[[sq:Perl]]
[[sr:Програмски језик Перл]]
[[sv:Perl]]
[[ta:பெர்ள்]]
[[tg:Перл (забони барномасозӣ)]]