perl - webpretraga

Upload: mladen-dumitraskovic

Post on 06-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Perl - Webpretraga

    1/61

    Uvod - Zasto uciti Perl ?

    Sazetak:

    Kada sam poceo sa Perl-om, najveci problem je bio odluciti se koju literaturu koristiti. Iz tog razloga u ovomprirucniku su izbacene nepotrebne stvari koje zamaraju citaoca i fokus je na sustini i opipljivim rezultatima -

    odmah.

    Sta je uopste Perl ?

    Perl je razlog zasto cete zavolete programiranje :)

    Perl je star. Njegova izdrzljivost i postojanost na trzistu je samo jedan od dokaza koliko je ovaj jezik koristan generacijamprogramera i sistem administratora sirom sveta.

    Autor Perl-a je Larry Wall. Perl je "zvanicno" rodjen 1987 godine na UNIX sistemima i sluzio je kao zamena za shell jezike(sh), AWK i sed. Tada je Larry radio na poverljivim projektima gde su racunari "ozbiljne" namene bili povezanikriptovanom vezom. Dobio je zadatak da osmisli centralizovan sistem konfiguracije i izvestavanja i tako se poceo razvijati

    Perl. Obratite paznju - Perl je programski jezik, koji je prevashodno sluzio sistem administratorima - to treba dosta da vamgovori.

    Ako su vam skraceniceAWK, sed, sh strane - nema problema. U sustini, Perl je preuzeo mogucnosti veoma napradneobrade teksta iz tih jezika i interakcije sa operativnim sistemom. Nemojte da vas ovo sad zamara, naucicete kasnije.

    Da li je Perl tezak za ucenje ?

    Ako ste programirali do sada - ne. Jedina stvar kod Perl-a koji moze da vas oznoji su regularni izrazi. Medjutim - u tome je iosnovna snaga Perl-a. Ako ste ikad radili sa sed-om, Perl je implementirao i te mogucnost, tako da bi ste trebali biti

    poznatoj teritoriju.

    Ako niste programirali do sada - zavisi. Zasto "zavisi" ? Moram da vam kazem nesto. Postoje programski jezici koji se naprvi pogled - lakse uce. Obratite paznju, rekao sam - na prvi pogled. U cemu je fora ? Fora je u tome sto uz te programskijezike, "novije generacije" dobijete uglavnom neki interpreter (bez njega se source ne moze izvrsavati), dobijete "editor",tutorijale i ostale stvari. I vi sada mislite da ce vam biti lakse jer ste dobili sve na tacni.

    E pa nije bas. To sto je u pocetku lakse, na kraju se obije od glavu, jer vas stavi u mentalni sklop da ce uvek biti nekog davam sve poturi na tacni kad vam zatreba u ptogramiranju. Lakoca u ucenju ima svoju cenu kasnije.

    Perl nije komplikovan za ucenje. Istina potrebno je sesti, odvojiti vreme, definisati ciljeve i poceti raditi. Perl iprogramiranje se ne uci samo citanjem dobre knjige. Potrebno je jednostavno sesti i poceti kuckati source.

    Greske u programiranju - su najbolja stvar koja moze da vam se desi. U pocetku ce ih biti mnogo, bice mnogo i nedoumica.

    Kasnije cete ih zavolete - jer ce vas uvek nauciti nesto novo i kvalitetnije.

    Gde i za sta se upotrebljava Perl ?

    Perl mozete upotrebljavati za:

    Masovnu obradu tekstualnih i HTML stranica (bukvalno milione).Sistem administracijuMrezno programiranjeWeb programiranjeCGI ProgramiranjeInterakcije za bazama podataka

    Dopisati po potrebi :)

    Perl se moze upotrebljavati u svim oblastima informatike, za najrazlicitije zadatke. Od bioinformatike do finansija.Osnovno pitanje ovde je - sta konkretno vama treba ?

    Naravno, postoje neke stvari za koje se drugi programski jezici jednostavno namecu kao prirodnije/logicnije resenje. Da bi

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    2/61

    ste dosli do stadijuma kada prepoznajete kada je sta prikladnije potrebno je - vreme.

    Kako citati Perl prirucnik ?

    Sazetak:Odluciti kako nesto uciti je bitnije nego sto mislite.

    Kako pratiti ovaj "kurs" ?

    Ucenje programiranja nije citanje romana.

    Bicu potpuno iskren. Nema nikakvog smisla da nastavite sa citanjem ovih stranica ako se ne pridrzavate redosleda -pogotovo ako se prvi put susrecete sa programiranjem.

    Neko ce reci: "Sta je njemu, vecina vlasnika sajtova zeli da mu se citaju tekstovi ?" Ovde i jeste najveca razlika. Da, janemam nista protiv da citate moje tekstove, zato sam i napravio sajt, medjutim, poenta je da kada zavrsite sa citanjem

    nekog teksta znate nesto sto mozete da upotrebite sutra za licnu korist.

    Kao neko ko je samouk programer, i ko je protracio dosta vremena citajuci kojekakve tutorijale na Internetu sada imamdovoljno izkustva da znam sta je dobro i sta je lose, tj. sta se moze preskociti, a sta se jednostavno mora znati.

    Ovaj prirucnik, ili "kurs", nazovite ga kako hoce ima samo jedan cilj. Taj cilj jeste da kada zavrsite sa citanjem, znateosnove programiranja u Perl-u, i sto je jos bitnije, da znate kako i sta dalje da radite u zavisnosti od vasih interesovanje.

    Postoji sansa da vam se Perl svidja. Bilo bi mi veoma drago da je tako. To bi znacilo da ste na pravom putu da ovladatejednim programskim jezikom na koga uvek mozete racunati.

    Postoji sansa da vam se Perl ne svidja. I to je ok. Mozda vam je blizi neki drugi programski jezik, mozda jos niste definisalista vam treba. Mozda samo probate malo PHP-a, malo HTML-a, malo Perl-a ili nekog drugog programskog jezika.

    Nemojte misliti da nisam probao mnoge druge jezike, izmedju ostalog dosta sam se zadrzao na PHP-u i Python-u. Zapravo,sa Python-a sa presao na Perl. Zasto? Sato sto sam nakon citanja par stvari o Perl-u mogao konacno da napravim par

    programa koji su mi zadavali glavobolju. Ne sporim, moguce ih je bilo napraviti i uz pomoc drugih jezika, ali ono za sta mije u drugim jezicima bilo nemoguce, to sam napravio u Perl-u za jedno popodne.

    Zato, molim vas, ako vec ucite Perl, idite jednu lekciju po jednu, nemojte da preskacete redosled, samo cete se pogubiti imozda odustati jer cete misliti : "ma ne mogu ja ovo".

    Da, trebace vam koji sat da zavrsite ovaj online kurs, ali bolje i to nego da protracite dane citajuci kojekakve razbacanetutorijale na Internetu.

    Trudio sam se da smisleno organizujem i pojednostavnim ovaj prirucnik, nadam se da cete to iskoristiti.

    Perl na Windows-u ( 1. deo )

    Sazetak:

    Kako instalirati Perl na Windows. Detaljno uputstvo. [ Nabavka. ]

    Kako i Gde nabaviti Perl za Windows ?

    Ukoliko koristite Windows, ili iz nekog razloga ne zelite zakoraciti u svet UNIX-olokih sistema, postoji par resenja. Jednood resenja je instalacija Active State Perl-a.

    Da budem iskren, ne bi bilo lose bar da probate neki od Linux, a pogotovo BSD sistema. Ipak, Perl je nastao na UNIX-u, te(bar meni) programiranje u Perl-u na OpenBSD sistemu izgleda nekako "prirodnije".

    Da se vratimo na Instalaciju Perl-a. Potrebno je da odete na Perl-ov zvanicni sajt http://perl.org. Mozete to i da odraditepreko trazilice:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    3/61

    Korak 1 - Nalazimo zvanicni Perl-ov sajt.

    Korak 2 - Nasli smo sajt, idemo na download opcije.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    4/61

    Korak 3 - U ovom slucaju, biramo Windows.

    Korak 4 - Biramo ActiveState Perl

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    5/61

    Korak 5 - Biramo x86 verziju.

    Korak 6 - Fajl je velicine oko 27MB. Zapamtite gde ste ga snimili.

    Perl na Windows-u ( 2. deo - ActiveState Perl Instalacija)

    Sazetak:

    Kako instalirati ActiveState Perl na Windows. Detaljno uputstvo. [ Instalacija. ]

    ActiveState Perl Instalacija

    Da bi ste nastavili sa citanjem teksta potrebno je da na racunar imate snimljen ActiveState perl Instalacioni fajl. To smouradili uprethodnoj lekciji .

    Potrebno je da pokrenemo instalacioni fajl:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    6/61

    Korak 1 - Pokrenimo instalaciju.

    Korak 2 - Prihvatamo Ugovor.

    Instalacija ce biti obavljena u direktorijum "c:\Perl".

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    7/61

    Korak 3 - Idemo na Next.

    Korak 4 - Idemo na Next.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    8/61

    Korak 5 - Kliknem o na Install.

    download perl-a sa zvanicnog sajta

    Korak 6 - Sacekamo koji minut dok se fajlovi i dokumentacija ne raspodele na disk.

    Korak 7 - Zavrsavamo instalaciju na Finish.

    Sada moramo proveriti uspesnos instalacije Perl-a na Windows. Idemo na START > RUN. Ukucamo "cmd" i kliknemo naOK.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    9/61

    Korak 8 - Nista bez DOS-a :)

    Korak 9 - "DOS" je spreman za unos komandi.

    Hajde da proverimo koja je verzija Perl-a u pitanju. Unosimo komandu "perl -v".

    Korak 10 - Fajl je velicine oko 27MB. Zapamtite gde ste ga snimili.

    Sada idemo u direktorijum gde smo intalirali Perl. Kucamo prvo "c: \", zatim "cd perl". Ako smo sve uradili kako trebasada smo u direktorijum "c:\Perl".

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    10/61

    Korak 11 - Dosli smo u Perl direktorijum.

    Otvorite Notepad ili neki drugi editor koji koristite i prekopirajte sledeci source-kod u fajl hello.pl. Snimite ga udirektorijum "c:\Perl".

    print "########################\n";print "\n";print "Provera Perl Instalacije\n";print "\n";print "########################\n";

    Korak 12 - Snimite ovaj source u fajlhello.plu direktorijum "c:\Perl".

    Da vidimo sta ima u direktorijumu "c:\Perl". Listanje sadrzaja aktiviramo komandom starom dobrom DOS komandom"dir".

    Korak 13 - Potreban nam je fajlhello.pl.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    11/61

    Ako dobijete sledeci rezultat kada otkucate hello.pl i pritisnete ENTER, Perl je instaliran i sve radi kako treba.

    Korak 14 - Sve je ok, Provera Perl Instalacije je obavljena.

    Perl na Unix i slicnim sistemima

    Sazetak:

    Unix i slicni sistemi, su prirodna baza za rad u Perl-u.

    Perl i BSD/Unix/LinuxUkoliko koristite neki od UNIX ili Linux sistema, sasvim je izvesno da cete imati punu podrsku za Perl, tj. da je Perl vecinstaliran kod vas.

    Koristite komandu "perl -v" u vasem terminalu da bi proverili Perl instalaciju.

    Ako Perl nemate, radite na cudnom sistemu :)

    Perl mozete skinuti sa sledece adrese: http://www.perl.org/get.html .

    Konkretno autor ovog teksta najvise voli da radi na OpenBSD sistemu. Brzo se instalira, brzo podesava, moze da radi nastarijim masinama i radi stabilno, sto je najbitnije. Neki ga smatraju "teskim", ali to je stvarno nezahvalno reci,

    pogotovo ako nisu radili u njemu.

    Da skratim pricu, ucinite uslugu sebi, i probajte OpenBSD.

    U cemu pisati source ?

    Sazetak:Postoji mnogo programa za pisanje source-a. U pocetku se drzite najjednostavnijih.

    Koji editor da odaberem za programiranje ?

    Postoji gomila programa za pisanje sorce-a. Neki su besplatni, drugi kostaju poprilicno. Za sada nema potreba da se

    zamarate odlukom o tome koji cete editor da koristite, samo pocnite da programirate :)

    Ja licno koristim Edit Plus na Windows-u, a ponekad i Notepad.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    12/61

    Na OpenBSD sistemu koristim skoro uvekAugust. Pre ili kasnije trebace vam Vi.

    Svojevremeno sam na Linux-u koristio Kate.

    Sta god da odaberete u pocetku - neka bude jednostavno i neka ima opciju syntax highlighting, tj. bojenja source-a kakobi ste se lakse snasli u gomili cudnih znakova :)

    Prvi Perl Program

    Sazetak:

    Ako napisete ovaj program, i izvrsite ga, napisali ste sve ostale :)

    Hello World, ili nesto drugacije ?

    Gotovo je postao standard u ucenju programiranja da prvi program izpisuje na ekran "Hello World". Hajde da ispostujemostandard.

    Bez obzira na tip operativnog sistema koji koriste, svi programi u sledecim lekcijama bi trebali raditi bez problema.

    Nisam neuro-ekspert, ali mi se cini iz sopstvenog iskustva da se u nasu memoriju znatno brze smesta ono sto se propratimotoricki, nego ono sto se copy > paste-uje.No, mozda je to samo moj mozak...

    Prvi Jednostavan Perl Program

    Otvorite editor koji koriste i u njemu napisite sledece. Ali pre svega - poenta je da pisete source vi, a ne da uradite copy> paste.

    #!/usr/bin/perlprint "Hello World\n";

    Ako koriste Windows, snimite prethodni source u neki fajl, npr : pozdrav.pl . Rekli smo da cemo program snimati u

    "c:\Perl".

    Nakon snimanja programa, pokusajte da ga pokrenete otvaranjem "DOS-a".

    Idemo na START > RUN1.Ukucamo "cmd", pritisnemo ENTER.2.Pojavi se "DOS"3.Odemo u "c:\Perl" (komandom "cd Perl")4.kucamo pozdrav.pl, pritisnemo ENTER5.

    Ukoliko ste sve uradili kako treba, trebalo bi da dobijete sledeci rezultat:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    13/61

    Za vas koji koriste UNIX i slicne sitema, ako program nece da se pokrene, probajte sa komandom:

    $ chmod a+x pozdrav.pl

    Ukoliko niste snimili program sa ekstenzijom .pl , to nije problem. Unix-oliki sistemi automatski prepoznaju sta treba da

    rade, pa mozete koristi i ovo:$ chmod a+x pozdrav

    Kad zavrsite sa prethodnim komandama kojima vas program postaje "izvrsiv", pokusajte program pokrenuti sa:

    $ ./pozdrav

    Analiza programa

    Da se vratimo na:

    #!/usr/bin/perlprint "Hello World\n";

    #!/usr/bin/perl

    - ovo je takozvana "shebang" linija. Ona govori sistemu u kom ste programskom jeziku pisali source. Tu nista nema zadodati i oduzeti, jednostavno shebang linija je standard. Onda ide uvek u vrh programa.

    print

    - ovo je Perl-ova komanda kojom se stampa tekst na ekran. Postoji jos mnogo komandi za razne namene. O njima kasnije.

    Hello World

    - ovo je neki tekst koji se stampa. Mozete ubaciti koja god hocete slova i brojeve izmedju navodnika.

    \n";

    - se stavlja na kraju komande obavezno. Ovo "\n" je komanda za prelazak u novi red tako da tekst bude u linijama, a ne

    sve recenice jedna do druge :)

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    14/61

    Stampanje vise redova, jedan ispod drugog

    Ok, naucili smo osnove "stampanja" na ekran. Hajde sada da:

    Odstampamo recenicu1.Odstampamo prazan red :)2.Odstampamo neku drugu recenicu3.Odstampamo prazan red4.

    Odstampamo neki broj5.

    Potrebno je da u "vrh" programa unesemo shebang liniju:

    #!/usr/bin/perl

    Zatim, zadajemo komandu za prikaz na monitoru - print, zajedno sa recenicom pod navodnicima (navodnici su obavezni,kao i \n; na kraju recenice):

    #!/usr/bin/perl

    print "Ovo je prva recenica\n";

    Sada definisemo samo prazan red pomocu "\n";

    #!/usr/bin/perl

    print "Ovo je prva recenica\n";print "\n";

    Sada unosimo drugu recenicu, prazan red, i neke brojeve po izboru:

    #!/usr/bin/perl

    print "Ovo je prva recenica\n";print "\n";print "Ovo je druga recenica\n";print "\n";

    print "453524343523\n";

    #Ovo sto vidite ovde#Su komentari source-a#Koje pisu Programeri da bi se prisetili sutra sta su pisali juce :)#Komentari pocinju sa znakom #

    Snimite ovaj program kao redovi.pl u "C:\Perl", i idemo da ga pokrenemo:

    Idemo na START > RUN1.Ukucamo "cmd", pritisnemo ENTER.2.

    Pojavi se "DOS"3.Odemo u "c:\Perl" (komandom "cd \", i komandom "cd Perl")4.kucamo redovi.pl, pritisnemo ENTER5.

    Trebalo bi da dobijete sledeci rezultat:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    15/61

    Pokretanje Perl programa pod Windows-om ?

    Sazetak:

    Program se pokrece tastaturom za sada. Graficki programi i kliktanje misa ce doci kasnije.

    Taj Famozni "DOS"

    Mislim da nekolici vas dugujem par objasnjenja. Ukoliko ste imali problema kod pokretanje Perl programa iz prethodnihlekcija, cak i ako ste sledili uputstva iz instalacije ActiveState Perl-a, moguce je da vam ta DOS stvar nije potpuno jasna.

    Verovatno vam se ne svidja ideja da u doba brzih racunara ucite DOS, ali je realnost takva da ne mozete ozbiljno da

    pridjete programiranju na Windows-u ako ne poznajete bar osnovne DOS komande.

    Niko od vas ne trazi da znate DOS u detalje, ali je potrebno da znate parosnovnih stvari kao sto su:

    Prebacivanje u folder iznad foldera u kome ste sad ( vracanje nazad )1.Prebacivanje u jezgro hard-diska, tj dolazak do c:, ili d:, ili e:, i tako dalje.. ( a i b su flopi diskovi )2.

    Ulazak u neki folder3.Listanje sadrzaja foldera4.Potraga za odredjenim tipom fajlova5.Potraga za odredjenim fajlom6.Pokretanje programa7.

    Za sve ovo sto sledi nece vam trebati vise od par minuta, zato obratite paznju i dobro savladajte materiju.

    Trebace vam i za programiranje u drugim programskim jezicima, ako nista drugo.

    Pokretanje "DOS-a" pod Windows-om

    Bez obzira sto smo u prethodnim lekcijama prosli kroz ovo, hajde da ponovimo jos jednom:

    Idemo na START , pa idemo na opciju RUN (run = pokreni neki program) :

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    16/61

    Zatim kucamo komandu cmd ili command, pa pritisnemo ENTERili kliknemo na OK.

    Ukoliko vam se otvori sledeci DOS prozor, sve je u redu i mozete zadavati komande preko tastature. Svaku komanduzavrsavate pritiskom ENTER-a.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    17/61

    Prebacivanje u folder iznad foldera u kome ste sad ( vracanje nazad )

    Postoji dva nacina da se vratite u folder nazad. Veoma su slicni, razlika je samo u razmaku. Prva komanda za vracanjenazad je "cd.." (cd pa tacka tacka)

    Druga komanda je ista, samo sa razmakom izmedju cd i tacaka, tj. "cd ..".

    Naravno, nakon komandi pritisnete ENTER.

    Prebacivanje u jezgro hard-diska, tj. dolazak do c:

    Postoji jos jedan nacin da dodjete u "root", tj. jezgro hard-diska. To mozete ostvariti komandom "cd \" ( cd kosa crta ).

    Ulazak u neki folderPosto smo Perl instalirali u folderc:\Perl potrebno je da udjemo u taj folder. Koristimo komandu "cd Perl", pa pritisnemoENTER.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    18/61

    Listanje sadrzaja foldera

    Da bi saznali sta imamo u folderu, koristicemo DOS komandu "dir", nakon koje pritiskamo ENTER.

    Potraga za odredjenim tipom fajlova

    Recimo, imamo veliki broj fajlova i foldera u nekom folderu, a trebaju nam fajlovi odredjene ekstenzije, tj. tipa.

    Na primer, trebaju nam svi Perl fajlovi. Perl fajlovi imaju ekstenziju ".pl", kao sto tekstualni fajlovi imaju ekstenziju ".txt"a izvrsni fajlovi imaju ekstenziju ".com" ili ".exe".

    Koristicemo komandu "dir *.tip" fajla (zvezdica, pa tacka, pa tip fajla koji nam treba). Naravno, nakon komandepritiskamo ENTER.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    19/61

    Kao sto vidite, imamo rezultat. Nasli smo Perl fajlove: hello.pl, redovi.pl, pozdrav.pl.

    Potraga za odredjenim fajlom

    Sta se desava ako nam treba fajl kome znamo samo prvo slovo, ili prvih par slova. Prosto, koristicemo komandu "dir", toprovo slovo, i zvezdicu.

    Na primer, samo se secamo da fajl pocinje slovom "h". Kucamo "dir h*" , pa pritisnemo ENTER.

    Dobro ste uocili, nasli smo fajl hello.pl, ali i folder (direktorijum) html.

    Pitanje za vas:

    Mozete li sada, po secanju, da uradite sve prethodno od pocetka, tj. odete u folder Perl, napisete neki mali Perl programcickoji stampa neke redove, i pokrenete ga ?

    Ako ne mozete, nema veze. Nasa memorija zavisi od mnogo faktora, od toga koliko ste umorni, do toga koliko stemotivisani. Sve ce doci na svoje mesto nakon izvesnog vremena. Potrebno je samo da vi zelite nauciti Perl ili neki drugi

    jezik, kako bi sutradan imali sta staviti u CV ili zaraditi pare od programiranja. Samo opusteno.

    Brojevi u Perl-u

    Sazetak:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    20/61

    Brojevi i Perl se odlicno slazu. Vase je da to iskoristite najbolje.

    Kako Perl "vidi" Brojeve ?

    U Perlu mozete pisati brojeve na sledeci nacin (pokretni zarez):

    4.12125

    125.04.22e13 #4.22 puta 10 na 13-4.22e13 # minus 4.22 puta 10 na 13

    -5e-12 # minus 5 puta 10 na minus 12

    -5E-12 #isto kao prethodno

    Ne zamarajte se matematikom ako vam nije jaca strana, ako vam bude trebalo, naucicete.

    Celobrojne vrednosti

    1254-43-284874-25461845267221

    Prethodni broj, ako vam je mrsko tumaciti, mozete napisati i kao 1_845_267_221

    Nedekadne vrednosti

    Verovatno ste culi, bar sto se racunara tice, da postoje i drugi numericki sistemi sem onog koga se sluzimo svakodnevno.To je binarni sistem (nule i jedinice), heksadekadni sistem (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) i oktalni sistem.

    Ponavljam, nemojte da se opterecujete ovim, ako vam bude trebalo, Internet je pun informacija. U vecini slucajeva,trebace vam dekadni sistem, koga vec znate.

    Numericke Operacije u Perl-u

    Sazetak:Osnovne operacije u Perl-u se moraju znati.

    Operacija nad brojevima

    Sve sto vam treba za racunanje, implementirano je u Perl na ovaj ili onaj nacin. Da vidimo osnovne operacije:

    5 + 6 # pet plus sest je jedanaest

    5 - 2 # jeste 3

    2.4 + 3 # jeste 5.4

    5 * 40 # jeste 200

    5 * 40.0 #jeste 200

    5.0 * 40 #jeste 200

    5.0 * 40.0 #jeste 200

    10 / 2 #jeste 5

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    21/61

    10 % 3 # jeste 1

    Ovo zadnje sto smo naveli nije postotak, nego modulo. Modulo je ostatak deljenja a posto je 10 : 3 = 3, a ostaje 1 do 10,onda je modulo 1 :)

    Perl i Brojevi u Praksi

    Hajde da prethodne racunske operacije proverimo u Perl-u. Napisacemo mali program brojanica.pl i snimiti ga u"c:\Perl", po obicaju.

    #!/usr/bin/perl

    print "5 + 6 = ", 5 + 6, "\n";print "\n";print "5 - 2 = ", 5 - 2, "\n";print "\n";print "2.4 + 3 = ", 2.4 + 3, "\n";print "\n";print "5 * 40 = ", 5 * 40, "\n";print "\n";print "5 * 40.0 = ", 5 * 40.0, "\n";print "\n";print "5.0 * 40 = ", 5.0 * 40, "\n";

    print "\n";print "5.0 * 40.0 = ", 5.0 * 40.0, "\n";print "\n";print "10 / 2 = ", 10 / 2, "\n";print "\n";print "10 % 3 = ", 10 % 3, "\n";print "\n";

    ~ * ~

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    22/61

    ~ * ~

    Idemo na sledecu lekciju, o brojevima i konverzijama se za sada ne brinite, Perl je tu da se uhvati u kostac sa onimracunskim radnjama koje mu zadate, vase je samo da znate kako da definisete zadatak.

    Napomena:Ako vam nekad bude trebalo, ne zaboravite da na Windows-u imate kalkulator sa opciom Scientific zakompleksnija izracunavanja.

    Znakovni nizovi - jednostruki navodnici

    Sazetak:

    Jednostruke navodnike u Perl-u koristite kod pocetka i kraja znakovnog niza.

    Obrat\' paznju

    Jednostruki navodnici, ili polunavodnici, imaju zadatak da Perl-u pokazu pocetak i kraj nekog znakovnog niza. Oni sami posebi nisu deo znakovnog niza, samo sluze kao pokazivaci.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    23/61

    Da ne bi puno teoretisali, evo par primera :

    'ovo je znakovni niz''i ovo je''ovo su brojevi u znakovnom nizu 4 3 1 2 3 451.22''obratite paznju na grama\'tku''jer mozete napravit\' pometnju ako ubacite vise jednostrukih navodnika''unutar znakovnog niza''znaci, da bi prikazal\' jednostruki navodnik, u znakovnom nizu''stavite ispred njega kosu crtu, \'vako'

    A evo i source-a za gore-navedeno, program cemo snimiti kaojednostruki.pl u "c:\Perl" direktorijum, tj. folder.

    #!/usr/bin/perl

    print 'ovo je znakovni niz' . "\n";print 'i ovo je' . "\n";print 'ovo su brojevi u znakovnom nizu 4 3 1 2 3 451.22' . "\n";print 'obratite paznju na grama\'tku' . "\n";print 'jer mozete napravit\' pometnju ako ubacite vise jednostrukih navodnika' . "\n";print 'unutar znakovnog niza' . "\n";print 'znaci, da bi prikazal\' jednostruki navodnik, u znakovnom nizu' . "\n";print 'stavite ispred njega kosu crtu, \'vako.' . "\n";

    Napomena: Ova tacka izmedju znakovnog niza i "\n"; sluzi da spoji ta dva u jednu komandu.

    Znakovni nizovi - dvostruki navodniciSazetak:

    Dvostruke navodnike u Perl-u cete najvise upotrebljavati kod rada sa tekstom koristeci, po potrebi, specijalneznake.

    Razlika Postoji

    Da, postoji znatna razlika izmedju znakovnih nizova sa jednostrukim i znakovnih nizova sa dvostrukim navodnicima.

    Ako ste obratili paznju na prethodnu lekciju o jednostrukim navodnicima, videcete da je u source-u koristen "\n";, znaci,radi se o specijalnom znaku.

    Postoje mnogi specijalni znaci koji imaju posebno znacenje kada se ubace pod dvostruke navodnike, eneki od njih su:

    \L #Prebacuje sva slova u niska\l #prebacuje sledece slovo u nisko

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    24/61

    \U #Prebacuje sva slova u visoka\u #Prebacuje sledece slovo u visoko\n #Zapocinje novu liniju, gle cuda :)\t #Razmice za jedan "Tab"\a #Zvono\E #Predstavlja kraj komande kada se koristi \L ili \U

    Na primer, da vidimo kako se zvoni na interne zvucnike pomocu Perl-a :)

    #!usr/bin/perl

    #Snimite program kao zvonjava.pl u "c:\Perl"

    print "zvonjava sledi\n";print "\n";print "ali pre toga malo\trazmaka\n";print "\a\t\a\t\a\t\a\t\a\t\a\t\n";print "a i posle, lol\n";

    Rad sa Znakovnim Nizovima

    Sazetak:

    Prosirivanje recenica u Perl-u je lakse nego sto mislite.

    Nadovezivanje znakovnih nizova

    Kao i kod vecine ozbiljnih programskih jezika, i u Perl-u postoji mogucnost upotrebe razlicitih operatora nad znakovnimnizovima.

    Jedna od najcescih operacije nad nizovima je nadovezivanje, ili na engleskom "concatenate".

    Da bi nadovezali jedan niz na drugi, potrebno je da koristimo operator "." (tacku).

    Na primer, hajde da spojimo recenicu: "Ja ucim Perl, i za sada mi sasvim dobro ide."

    "Ja " . "Ucim Perl" . ", " . "i za sada mi sasvim dobro ide."

    A moze i ovako:

    "Ja Ucim Perl, " . "i za sada mi sasvim dobro ide."

    A moze i ovako:

    'Ja Ucim Perl, ' . 'i za sada ' . "mi sasvim dobro ide" . "."

    Idemo sad da to prebacimo u source. Napisacemo mali Perl programcic "nizovi.pl", i stavicemo ga tamo gde smo i do sadastavljali nase pocetne programe, u "C:\Perl".

    #!/usr/bin/perl

    #Snimite program kao nizovi.pl

    print "Ja " . "Ucim Perl" . ", " . "i za sada mi sasvim dobro ide." . "\n";

    print "Ja Ucim Perl, " . "i za sada mi sasvim dobro ide." . "\n";

    print 'Ja Ucim Perl, ' . 'i za sada ' . "mi sasvim dobro ide" . "." . "\n";

    Trebali bi da dobijete sledeci rezultat:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    25/61

    Napomena: Ako ste se malo zbunili sa ovoliko tackica za povezivanje reci, samo vezbajte sa nekom svojom kracomrecenicom. Mozete cak i povezivati slova u rec, za pocetak.

    Operator Ponavljanja ( x )

    Pre ili kasnije zatrebace vam vise istih znakovnih nizova, jedan do drugog. Da bi to uradili u Perl-u, koristicete operator"x".

    Bitno je znati, da navedeni operator, uzima ono sto mu je sa leve strane, i da napravi tacno onoliko kopija kolikonavedite u brojevima, sa desne strane.

    "ovo ce se ponoviti 2 puta " x 2

    "a ovo 3 " x 3

    4 x 12 #rezultat je 444444444444

    Napisacemo mali programcic "ponavljanje.pl":

    #!/usr/bin/perl#Snimite program kao ponavljanje.pl

    print "ovo ce se ponoviti 2 puta " x 2 . "\n";

    print "a ovo 3 " x 3 . "\n";

    print 4 x 12 . "\n";

    Kod mene to izgleda ovako:

    Perl Ugradjena Upozorenja

    Sazetak:

    Perl ce vam, koliko je to moguce, izaci u susret pre nego sto napisete finalnu verziju programa.

    Kako Perl pomaze ?

    Nema programera koji nije napravio gresku, niti pocetnika koji sve zna. Na svu srecu, u Perl-u postoje ugradjenaupozorenja koja ce nam, koliko je to moguce, skrenuti paznju da smo nesto zabrljali.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    26/61

    Postoji vise nacina kako mozemo reci Perl-u da nas obavestava ako nesto nije u redu. Prvi nacin je prilikom pokretanjanaseg programa, ako u samom programu nismo aktivirali opciju za upozorenja.

    $ perl -w neki_program

    A ako hocemo da izbegnemo kucanje u terminalu, te da u samom programu aktiviramo upozorenja to mozemo uraditi kadau source-u poredshebanglinije dopisemo sledece:

    #!/usr/bin/perl -w

    Neke novije verzije Perl-a koriste takozvane Pragme. Pragma za upozorenja se aktivira ovako:

    #!/usr/bin/perluse warnings;

    Upozorenja koja smo aktivirali dobro dodju programerima koji, manje vise, znaju sta rade.

    Ponekad se desi da su nam potrebna detaljnija objasnjenja, a tada koristimo Pragmu diagnostics.

    #!/usr/bin/perluse diagnostics;

    Pragma diagnostics zahteva nesto vise memorije, zato sto za vas unapred sprema duze objasnjenje ukoliko dodje dogreske.

    Ukoliko ne zelite Pragmu diagnostics u svom programu, ipak je mozete koristiti prilikom pokretanja programa, ako vamnekad zatreba.

    $ perl -Mdiagnostics ./neki_program

    Da pojasnimo. Komanda "perl" sluzi da bi izvrsili neki_program, a "-Mdiagnostics" nam priprema dokumentaciju akonesto ne valja - prilikom pokretanja programa iz terminala, tj. sa komandne linije.

    Davanje Imena Promenjivama

    Sazetak:Drzite se jednostavnih imena, pogotovo kod vasih prvih programa u Perl-u. Smanjite mogucnosti za greskeodabirom razumljivih imena za promenljive.

    Pravila Dobre Prakse

    Kada programirate, pogotovo ako cinite prve korake, moze vam se desiti da za promenjive birate imena po nekom, samovama znanom, sablonu. Problem nastaje kada vam to predje u naviku, pogotovo ako se zaposlite u firmi u kojoj su pravilastriktnija.

    Na primer, moze vam biti zanimljivo da promenjivama davate imena kao sto su $a, ili $sistem, ili $krafa. Ovo zadnje moze

    da vam znaci kraj fajla. Pa zasto onda jednostavno ne biste promenjivoj i dali takvo ime ?

    Sasvim je izvesno, da i cete se i vi sami posle par meseci, ceskati po glavi pitajuci se sta vam neka promenjiva znaci unekom vecem programu. (znam sta pricam, opekao sam se...)

    Ukratko, da bi izbegli konfuziju, i stekli dobre navike, dajte vasim promenjivama smislena i logicna imena cije znacenjeodmah shvatate i posle duzeg vremena. Ne samo to, ukoliko budete delili vase programe pod slobodnim licencama,ljudima ce biti mnogo lakse da razumeju sta ste hteli reci.

    Dodeljivanje Vrednosti Promenljivama

    Sazetak:

    Dodeljivanje vrednosti je lako. Samo upotrebljavajte znak jednakosti.

    Kako Dodeliti Vrednost Promenljivoj ?

    Perl, kao i svi ozbiljni i dokazani u praksi programski jezici, tezi da se drzi do onoga sto je jednostavno i logicno. Kada

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    27/61

    zelite dodeliti neku vrednost promenljivoj, upotrebicete znak jednakosti, tj: "=".

    Bitno je znati da kada dodeljujete vrednost, prvo pisete promenljivu, zatim znak jednakosti, zatim vrednostpromenljive sa desne strane. Znaci sablon izgleda ovako:

    $neka_promenljiva = vrednost promenljive

    Hajde da vidimo kako to izgleda u praksi. Koristicemo sledece promenjive da napisemo source programa, koga cemonazvati "dodeljivanje.pl" i snimiti u "c:\Perl".

    $ime = "Larry"$prezime = "Wall"$malo_duze_ime_promenljive = "Nekad moze biti korisno i ovako"$broj_neki = 34$broj_veci = $broj_neki + 6

    A evo i programa koji ce isprintati na ekran vrednosti promenljivih :

    #!/usr/bin/perl# Snimite program kao dodeljivanje.pl

    $ime = "Larry";$prezime = "Wall";$malo_duze_ime_promenljive = "Nekad moze biti korisno i ovako";$broj_neki = 34;

    $broj_veci = $broj_neki + 6;

    print $ime;print "\n";print $prezime;print "\n";print $malo_duze_ime_promenljive;print "\n";print $broj_neki;print "\n";print $broj_veci;

    Ako ste sve otkucali kako treba, treba da dobijete sledece :

    Binarno Dodeljivanje

    Sazetak:

    U Perl-u se vodilo racuna o ustedi vremena. Dobre stvari iz drugih programskih jezika su i ovde nasle mesto.

    Perl i usteda u pisanju

    U programiranju se cesto desava da jednostavno zelite neke izraze, tj. operacije pojednostaviti, pa makar to bilo i pisanjem

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    28/61

    manjeg broja komandi. Sto se operatora binarnog dodeljivanja tice, oni u pocetku mogu izgledati zagonetno, medjutim, stovise prakse budete imali, sve cete biti zahvalniji sto postoje i takve "precice" prilikom pisanja programa.

    Ono sto sledi je primer dve razlicite komande, koje daju isti rezultat. Radi se o definisanju promenljivih:

    $neki_broj = $neki_broj + 455;

    je isto sto i:

    $neki_broj += 455;

    Naravno, sem sabiranja isti princip mozete primeniti na ostale osnovne matematicke operacije.

    Osim matematickih operacija, i kod sastavljanja znakovnih nizova imamo istu proceduru :

    $neka_rec = $neka_rec . "pa ova recenica"

    je isto sto i :

    $neka_rec .= "pa ova recenica"

    Napisacemo i mali programcic, i nazvati ga: "usteda.pl":

    #!/usr/bin/perl# Snimite program kao usteda.pl

    $ime = "Larry";

    print $ime;

    print "\n";

    $ime .= " je faca.";

    print $ime;

    Rezultat je sledeci :

    Prikazivanje Teksta

    Sazetak:

    Prikazivanje teksta na monitoru i stampacu je stvar jednog "print"-a, i para dvostukih navodnika.

    Prikazivanje Izlaznih Podataka

    U pocetku vase programerske karijere moze vam se desiti da napisete program koji perfektno radi a da za to samo vi znate,u smislu da program ne izbacuje nikakve poruke na ekran dok radi, ili kada zavrsi ono sto se od njega trazi.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    29/61

    Ovo ce vam se verovatno desiti ako se bavite sistem administracijom pa napisete mali program u Perl-u koji prebacujefajlove, pravi arhivu, prati sistemsko zdravlje i desavanja na mrezama koje odrzavate. To sto vi u trenutku pisanjaprograma znate sta on radi, ne znaci da cete se i setiti posle godinu dana sta ste hteli da kazete.

    Iz tog razloga je potrebno da umecete u program bar opcije za osnovno izvestavanje.

    Ovde necemo uciti nikakve nove komande, jer se izvestavanje, tj. ispis poruka na ekran vrsi komandom kojom ste do sadadobro upoznati, a to je "print".

    Bitno je samo da zapamtite da ako vec pisete neki program, onda ga pisite tako da u svakom trenutku znate sta on radi .Naravno, ne treba preterivati, ali da li preterujete i ne znacete posle par stotina napisanih programcica :)

    Umetanje Skalara u Znakovne Nizove

    Sazetak:Ako vam zatreba umetanje reci ili recenica u vec postojecu - Perl i za to ima resenje.

    Perl Znakovni Nizovi i Njihove Kombinacije

    Dobra stvar kod operacija sa znakovnim nizovima jeste sto mozete kombinovati svaki njihov deo. Umetanje jedne reci u

    recenicu na mestu neke druge reci, koja je u stvari promenljiva, ce vam se cesto desavati.

    No da se ne bi gubili u preteranoj teoriji i cudnim izrazima, da vidimo kako to u praksi izgleda.

    Definisacemo dve promenljive, ( $prvi_deo i $drugi_deo ), pa cemo ih ubaciti u neku recenicu.

    Budite disciplinovani, za sada uvek snimajte vase programe u jedan folder ( bar dok citate ovaj "kurs" ), i davajte imsmislena imena, kako sto smo se dogovorili :)

    #!/usr/bin/perl# Snimite program kao umetanje.pl

    $prvi_deo = "Ovo je prvi deo. ";

    $drugi_deo = "programiranje je uvek lako. ";

    $recenica = $prvi_deo . "Uz Perl ". $drugi_deo;

    print $recenica . "\n";

    Kod mene to izgleda ovako:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    30/61

    Operatori Poredjenja

    Sazetak:

    Rezultat poredjenja moze biti True ili False. Na vama je da odlucite sta cete posle.

    Poredjenje: True ili False

    Postoje dva tipa poredjenja. Moguce je izvrsiti poredjenje izmedju brojeva, sto smo radili u skoli, i poredjenje izmedjuznakovnih nizova.

    Sto se poredjenja brojeva tice, upotrebljavaju se standardni operatori (logical comparison operators) i to: 4, znamo da to nije tacno, posto 4 ne moze biti vece od 4. Dakle, imamo False slucaj, tj.netacno.

    Da vidimo kako izgleda tablica za poredjenje brojeva:

    Poredjenje Operator

    Jednako ==

    Vece >

    Manje =

    Manje ili Jednako

  • 8/3/2019 Perl - Webpretraga

    31/61

    Poredjenje Operator

    Jednako eq - equal

    Vece gt - greater

    Manje lt - less then

    Vece ili Jednako ge - great or equal

    Manje ili Jednako le - less or equal

    Nije Jednako ne - not equal

    Ulaz sa Tastature

    Sazetak:

    Unos elemenata sa tastature je krajnje pojednostavljen, bar sto se Perl-a tice.

    Korisnicki Unos

    Stvari ce tek postati zanimljive kada naucite koristiti operator "".

    Upotreba operatora "" u Perl-u je veoma jednostavna. Svodi se na definisanje promenljive u koju se pomocu-a stavlja ono sto je krajnji korisnik otkucao preko tastature.

    Sta cete raditi sa tom promenljivom je vasa stvar. Ali, lepo je znati da je u Perl-u prihvatanje korisnickog unosa krajnje

    pojednostavljeno i logicno.

    Da vidimo kako se koristi Perl operator u praksi.

    Definisacemo promenljivu $neki_broj, tako da kada unesemo neki broj sa tastature, ako je broj manji od 5, program ceizbaciti poruku "manji od 5", a ako je broj veci, ili jednak 5, program ce reci "Perl je extra programski jezik."Koristicemo takodje upravljacku strukturu "if".

    #!/usr/bin/perl#Snimite program kao unos.pl

    print "Unesite neki broj pa pritisnite ENTER\n";$neki_broj = ;

    if ($neki_broj < 5) {print "manji od 5";

    }if ($neki_broj >= 5) {

    print "Perl je extra programski jezik";}

    Posle par pokretanja programa, i ukucavanje nekih brojeva, kod mene to izgleda ovako:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    32/61

    Mozete slobodno da budete zadovoljni svojim dosadasnjim ucinkom ako su vam sve lekcije jasne, a trebalo bi da jesujer sam ih maksimalno pojednostavio.

    U svakom slucaju, cak i da vam nesto nije jasno, nema problema. Sve ce doci na svoje mesto vremenom.

    Operator Chomp

    Sazetak:

    Ponekad je potrebno "odseci" oznaku za novi red kada unosimo podatke za obradu u programu, pa cemokoristi "chomp".

    Uklanjanje oznake za novi red

    Perl operator je zaista korisna stvar, medjutim, on se ne bavi uklanjanjem zadnjeg dela unosa sa tastature kadapritisnete ENTER, tj. ostaje vam ono "\n", bez obzira sto ga vi ne kucate.

    To nam moze napraviti problem, pa Perl ima operator chomp kojim uklanja oznaku za novi red (\n).

    Recimo da zelimo definisati neki promenjivu, koju cemo nazvati $moja_recenica i koja se unosi sa tastature Perloperatorom . Zatim cemo nad tom recenicom upotrebiti chomp da neutralisemo oznaku za novi red.

    #!/usr/bin/perlprint "Unesite neku recenicu pa pritisnite ENTER\n";$moja_recenica = ;

    chomp($moja_recenica);

    Prethodni programcic ste mogli napisati i kao:

    #!/usr/bin/perlprint "Unesite neku recenicu pa pritisnite ENTER\n";chomp($moja_recenica = );

    Kao sto vidite, Perl vam uvek ostavlja opciju da stedite dragoceno vreme.

    Jos nesto. Mozda imate utisak da operator chomp nije nesto narocito koristan, te da ne vidite gde bi ga mogli upotrebiti.Ostavite donosenje zakljucaka za kasnije. Videcete koliko je chomp koristan, samo se strpite malo.

    Upravljacka struktura while

    Sazetak:

    Koristite "while" kada znate sta se treba izvrsavati veci broj puta, dok su ispunjeni postavljeni uslovi.

    Ponavljanje izvrsavanja dela programa

    Mozda je nezahvalno odvajati upravljacke strukture jednu od drugih, ali je sasvim izvesno da je struktura while, jedna odnajkorisnijih takozvanih "petlji" u programiranju.

    Koristicete while kada zelite da se nesto u programu izvrsava veci broj puta sve dok je ispunjen uslov koji ste vi odredili.

    Pokusacu vam dati par primera gde bi mogli upotrebiti "while". Naravno, to je samo zbog toga sto hocu da maksimalnopojednostavim ceo koncept, navodeci, koliko je to moguce, ocigledne primere zahteva koje bi stavili pred svoj program.

    No da ne duljim preterano, da vidimo gde bi mogli upotrebiti while (mozda u paketu sa ostalim upravljackim strukturamaPerl-a):

    Stampate na ekran neki red dok se taj red ne odstampa, recimo, 100 puta.Saljete automatski mail nekome dok ne posaljete 10.000 mailova dnevno

    pingate konstantno neki racunar sve dok se ta masina ne zagusi od ping zahteva (kada radite bezbednosne testove namrezi)Generisete neke html stranice do odredjenog broja, po odredjenom kriterijumu

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    33/61

    vrsite upis u neku bazu podataka dok broj redova po tabeli ne predje odredjeni broj...i mnogi drugi primeri. Ograniceni ste samo mastom.

    Ovo je samo mali deo onoga sto mozete uraditi uz pomoc while-a, koji treba da vam priblizi razloge za upotrebu teupravljacke strukture u vasim programima.

    Opet, zavisi od vas, mozda ce vam drugi operatori i komande mnogo vise koristiti. No, o tome cete vec vi odluciti uzavisnosti od toga sta vam bude trebalo i kako vise volite da pristupite programiranju.

    Sto se nekog jednostavnog programcica tice, hajde da na ekran stampamo neku rec onoliko puta koliko to navedemo upromenljivoj koju cemo nazvati "$odbrojavanje", a recenicu cemo uneti preko tastature.

    #!/usr/bin/perl#Snimite program kao while.pl

    print "Napisite bilo koju recenicu pa pritisnite ENTER\n";$recenica = ;$odbrojavanje = 0;

    while ($odbrojavanje < 20) {$odbrojavanje = $odbrojavanje + 1;print $recenica;

    }

    To bi trebalo da izgleda ovako:

    Funkcija defined

    Sazetak:

    U odredjenom broju slucajeva, apsolutno morate znati sta je definisano, a sta ne. Koristite "defined", kod

    unosa parametara u program.

    Definisi, pa kreni dalje.

    Ponekad vam se u programiranju moze desiti da vam je apsolutno neophodno da je neka promenljiva odredjena. To da li cepromenljiva biti odredjena korisnickim unosom preko tastature, ili citanjem odredjengo fajla, manje je bitno.

    Vazno je samo to da nesto mora biti definisano da bi se ostatak programskog kod-a mogao izvrsiti.

    Da bi proverili da li je promenljiva definisana, koristicete Perl funkciju defined na sledeci nacin:

    #!/usr/bin/perl#snimite program kao defined.pl i pokrenite ga da vidite#sta se desava.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    34/61

    print "Unesite nesto preko tastature, pa pritisnite ENTER \n";

    $vazna_promenljiva = ;if ( defined($vazna_promenljiva) ) {print "promenljiva je definisana, uneto je $vazna_promenljiva";

    } else {print "Program nece nastaviti izvrsavanje\n";print "jer niste definisali promenljivu unosom preko tastature\n";

    }

    Liste u Perl-u

    Sazetak:

    Ako imate kriterijum za odredjenu skupinu podataka, koristite specijalnu oznaku "@" za pravljenje liste.

    Definisanje Liste u Perl-u

    Liste u Perl-u su jednostavno skupovi nekih podataka sortirani po odredjenom kriterijumu. Cak i kada budete pravili prveliste, za koje ne znate koji je poredak podataka u njima, Perl ce uvek definisat neki kriterijum.

    Mozda ce se neko i zapitati: "Kako je to moguce da Perl definise kriteriju koji mi u trenutku nisu poznati ?"

    Pravo stanje stvari je da cete u pocetku mnoge stvari prevideti zbog nedostatka iskustva. To je, naravno, sasvim normalnodok ne steknete rutinu. Nemojte sada da razmisljate o tome u opste. Doci se samo po sebi.

    Da bi ste definisali listu u Perl-u koristice specijalan simbol sa kojim ste se do sad sigurno susretali kada ste slali mail-ove, ato je simbol "@". Naravno, sada cemo ga koristiti nevezano na mail kontekst.

    Evo nekih primera za nazive liste u Perl-u:

    @nekaLista@lista_imena@klijenti_ekspozitura23

    Posto smo naucili kako davati imena listama, da vidimo kako definisati clanove liste:

    @lista_brojeva = (3, 4, 5, 6, 7, 8, 9)@lista_imena = ("John", "Georg", "Michael", "Patrick")

    @lista_mesana = ("Nick", "Some Dude", 4323, 289)

    Redosled u Perl listama

    Ukoliko zelite dobiti nesto sa odredjene pozicije u listama, to cete uraditi ovako (koristicemo prethodne primere) :

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    35/61

    print "Iz prve liste 2 element\n";print @lista_brojeva[3];print "\n";print "Iz druge liste prvo ime\n";print @lista_imena[0];

    Kao sto vidite, u programiranju, kada se govori o listama (tj. pozicijama) uvek "brojite" od nule. U realnom zivotu ne

    mozete nekom kusur vracati tako sto cete zanemariti prvu novcanicu koju dajete nekome (0-ulta, pocetna novcanica), ali uprogramiranju to ide tako. Bar kada se govori o pozicijama elemenata neke liste.

    Mozda jeste cudno, ali cete se naviknuti. Takodje, ne zamarajte se ovime, jednostavno stvari su takve kakve jesu i za sadaodlicno funkcionisu. Ako bi ste pak zeleli da saznate zasto se u programiranju broji od nule u nekim slucajevima probajte sa

    unosom sledeceg stringa na vasoj omiljenoj trazilici: "Why do programmers count from zero ?"

    Promenljive i Liste

    Moze vam se desiti nekad da ce vam trebati neka promenljiva u listi. To nije nista cudno. Iz prethodnih lekcija smo naucili

    kako definisati promenljive, pa hajde da to primenimo.

    $neka_promenljiva = 43 + 23;$jos_jedna_promenljiva = "John Smith";

    Sada da napravimo listu u koju cemo ubaciti neke elemente, ali i gornje promenljive:@kombinovana_lista = (1, 2, 3, $neka_promenljiva, $jos_jedna_promenljiva )

    Opsezi i liste

    Liste je moguce napraviti bez nesto preterano kucanja, na primer, mozete definisati gomilu brojeva na brzinu:

    @lista_1 = (1..50); #svi brojevi izmedju 1 i 50@lista_2 = (0, 1-5, 9, 10); #brojevi su 0, 1 do 5, 9 i 10@lista_3 = ($a..$b); #opseg definisan pomocu promenljivih

    Hajde da nesto od prethodnih primera slozimo u programcic liste.pl :

    #!/usr/bin/perl

    #snimite program kao liste.pl

    $neka_promenljiva = 43 + 23;$jos_jedna_promenljiva = " John Smith";

    @kombinovana_lista = (1, 2, 3, $neka_promenljiva, $jos_jedna_promenljiva );

    @lista_brojeva = (3, 4, 5, 6, 7, 8, 9);@lista_imena = (" John", " Georg", " Michael", " Patrick");@lista_mesana = (" Nick", " Some Dude", 4323, 289);@lista_1 = (1..50);@lista_2 = (0, 1..5, 9, 10);

    print @kombinovana_lista;print "\n";print @lista_brojeva;print "\n";print @lista_imena;print "\n";print @lista_mesana;print "\n";print @lista_1;print "\n";print @lista_2;

    Rezultat programa je kod mene sledeci:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    36/61

    Precica qw

    Sazetak:

    Kod pravljenja listi u Perl-u, stedite vreme koristeci "qw".

    Precica qw - Perl Liste na Laksi Nacin

    Da bi ste razumeli ovu lekciju potrebno je da ste procitali lekciju o listama u Perl-u.

    Da se podsetimo kako smo definisali liste tako sto cemo napraviti listu sa nekim licima :

    @imena = ("John", "Mark", "Sebastian", "Vinona", "Smith")

    Da li vas je zamorilo kucanje navodnika? Ukoliko jeste, koristite precicu qw koja olaksava pravljenje liste.

    Ako bi prethodni primer zeleli napisati pomocu precice qw, to bi izgledalo ovako:

    @imena = qw(John Mark Sebastian Vinona Smith)

    Ako vam se desi, a verovatno hoce, da cete obicne zagrade upotrebiti za nesto drugo u programu, liste mozete definisati nabrzinu i pomocu sledecih znakova : !, @, [, {, < .

    Ovo ce vam narocito koristiti kada budete radili obradu veceg broja tekstualnih fajlova ili web stranica. Sasvim je izvesnoda ce vam i regular expression-si priskociti u pomoc :)

    Necu da vam ulepsavam. RegExp-i mogu da vas namuce u pocetku, ali se to kasnije i te kako isplati - od obrade teksta doizvlacenja onoga sto vam je potrebno iz baza podataka.

    Dakle, navedenu listu sa imenima mozemo napraviti i ovako:

    @imena = qw[John Mark Sebastian Vinona Smith]@imena = qw{John Mark Sebastian Vinona Smith}@imena = qw!John Mark Sebastian Vinona Smith!@imena = qw@imena = qw#John Mark Sebastian Vinona Smith#

    Operator pop

    Sazetak:

    Operator "pop" koristicete kada "skidate" nesto sa kraja liste.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    37/61

    Uzimam sa kraja reda...

    Kada definisete neku listu moze vam se desiti da sa elementom te liste, koji se nalazi na kraju liste, koja je sortiana ponekom kriterijumu (a uvek jeste), zelite uraditi nesto.

    To sta cete uraditi sa tim elementom liste je vasa stvar. Da li cete ga brisati, ili upisivati u drugu listu , ili koristiti za nekudrugu aktivnost - sasvim je nebitno.

    Bitno je da postoji operator pop kojim vrsite uklanjanje zadnjeg elementa neke liste.

    Na primer, mozemo definisati listu @brojevi u koju cemo smestiti sve brojeve od 1 do 10:

    @brojevi = (1..10);

    Ako hocemo da uklonimo zadnji broj 10, ali i da ga prebacimo u neku promenljivu koju cemo kasnije negde iskoristiti , toide ovako:

    $zadnji = pop(@brojevi);

    lista @brojevi sada je umanjena za jedan (zadnji) broj.

    Ako to ubacimo u neki programcic, imamo sledece:

    #!/usr/bin/perl

    #snimite program kao pop.pl

    @brojevi = (1..10);print "osnovna lista sadrzi: " , @brojevi;

    $zadnji = pop(@brojevi);

    print "\n";print "sa liste je skinut \"$zadnji\": \n";print "lista sada izgleda ovako: \n";print @brojevi;

    A rezultat izgleda ovako:

    Operator pushSazetak:

    Operator "push" koristicete kod "stavljanja" nekog elementa na kraj liste.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    38/61

    Dodavanje na kraj reda

    Koristili smo Perl operator pop kada smo uzimali element sa kraja reda i koristili ga za nesto, kasnije u programima.

    Sada nam treba da dodamo element na kraj reda. Da bi to uradili koristicemo Perl operator "push".

    Kao i u primeru o operatoru pop, napravicemo prvo listu sa nekim brojevima:

    @brojevi = (1..10);

    Koristeci operator push, dodacemo broj 11 u listu, ovako:

    push(@brojevi, 11);

    Mozda ce neki to zeleti da urade bez zagrada, dodajuci broj 12:

    push @brojevi, 12;

    A ako napravite dodatnu listu sa brojevima od 20 do 30, to ide ovako:

    @dodatak = (20..30);

    push @brojevi, @dodatak;

    Kada sve napisete u formi malog programcica, to izgleda ovako:

    #!/usr/bin/perl

    #snimite program kao push.pl

    @brojevi = (1..10);

    print "lista @brojevi sad sadrzi: ", @brojevi;print "\n";

    push(@brojevi, 11);push @brojevi, 12;

    print "Nakon upotrebe operastora push za 11 i 12:", @brojevi;print "\n";

    #sad ubacujemo brojeve od 20 do 30@dodatak = (20..30);push @brojevi, @dodatak;

    print "Nakon dodatka, imamo sledecu listu brojeva: ", @brojevi;

    Kada pokrenete mali programcic push.pl, koji smo napisali, dobijete sledece :

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    39/61

    Operatori shift/unshift

    Sazetak:Shift i Unshift se odnosi na operacije sa elementom na pocetku liste. Shift "uzima" element, unshift "stavlja"element na pocetak liste.

    Aktivnosti na Pocetku Perl Liste

    Rekli smo da cemo koristiti Perl operatorpop kada treba da skinemo neki element u listi i upotrebimo ga znesto.

    Takodje, operatorpush smo koristili da umetnemo element na kraj niza.

    Sta se desava kada treba da operisemo sa elementima, ali na pocetku liste, tj. niza elemenata ?

    Upotreblavacemo operatore shift i unshift. Operatorom shift uzimamo neki element liste sa pocetka, a operatorom unshiftubacujemo element u postojecu listu.

    Prvo da napravimo neku listu sa imenima:

    @imena = qw(John Michael Nick);

    Recimo da nam treba za nesto izdvojen element "ime", a uzecemo ga sa pocetka liste.

    $ime = shift(@imena);

    Sada lista @imena sadrzi samo imena Michael i Nick, a element $ime je John. Jos jednom:

    $ime = shift(@imena);

    Sada lista @imena sadrzi ime Nick.

    Dosta oduzimanja sa pocetka liste. Hajde da neko ime i dodamo na pocetak.

    unshift(@imena, "Patrick");unshift(@imena, "Alex");

    Ako to sve sklopimo u mali program, imamo sledece:

    #!/usr/bin/perl

    #snimite program kao shift.pl

    @imena = qw(John Michael Nick);

    print "promenljivoj \"ime\" dodeljujemo element sa pocetka reda \n";$ime = shift(@imena);print "promenljivoj je dodeljena vrednost: ", $ime;print "\n";print "Pa opet\n";

    print "promenljivoj \"ime\" dodeljujemo element sa pocetka reda reda\n";$ime = shift(@imena);print "promenljivoj je dodeljena vrednost: ", $ime;print "\n";

    print "A sada ubacujemo imena na pocetak liste: \n";unshift(@imena, "Patrick");unshift(@imena, "Alex");

    print "Lista imena sada izgleda ovako:", @imena;

    Kada se pokrene programcic shift.pl, dobijemo sledece:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    40/61

    Upravljacka struktura foreach

    Sazetak:

    Koristicete "foreach" u Perl-u kada zelite nesto uraditi nad svim elementima liste.

    Trcanje kroz Perl Listu

    U koliko zelite da na nekim elementima jedne liste zelite izvrsiti istu operaciju, mozete koristiti upravljacku strukturuforeach.

    Karakteristika upravljacke strukture foreach jeste da prolazi kroz listu, te da po zadatim ketirrijumima izvrsava neke

    operacije.

    Ako definisemo neku listu sa brojevima, a zelimo da za svaki broj istampamo: "Ovo je broj: x", onda bi se to moglo ovakonapisati:

    #!/usr/bin/perl

    @brojevi = (1..10);

    foreach $broj ( @brojevi ) {print "Ovo je broj: $broj.\n";

    }

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    41/61

    Hajde da prosirimo programcic. Recimo, da na svaki broj u listi dodamo 5:

    #!/usr/bin/perl

    @brojevi = (1..10);

    foreach $broj ( @brojevi ) {print "Na broj $broj, dodali smo 5", $broj += 5;

    }

    Mozda naslucujete, mozda ne, ali mozete uraditi gomilu korisnih stvari sa upravljackom strukturom foreach. Ako vam nistane pada na pamet, ili ako vam je Perl prvi programski jezik, logicno je da cete dobijati ideje malo kasnije.

    Da bi covek uspesno programirano, potrebno je da akumulira mnogo znanja o racunarima i operativnim sistemimageneralno, a tek nakon uvida u mogucnosti programskih jezika, otvoricete sasvim novo polje u radu sa racunarima.

    Mogao bih se kladiti da cete biti zaprepasteni sta ce vam za izvesno vreme padati na pamet, kada se otisnete u svet pisanjaprograma za posebne namene :)

    Podrazumevana Promenljiva: $_

    Sazetak:

    Perl skracuje vreme za pisanje programa i cini program jednostavnijim upotrebom podrazumevanepromenljive, oznake "$_".

    Podrazumevano, a Korisno.Secate se kada smo napocetku ovog Perl kursa rekli da cete zavoleti programiranje ?

    Dame i gospodo, dobro dosli u lekciju o podrazumevanoj promenljivoj u Perl-u, cija je oznaka "$_", naravno, beznavodnika.

    Verovatno cete vremenom nekgde cuti ili procitati da su ljudi koji vole programirati u Perl-u posebna vrsta zverki. E pa,bili su u pravu.

    Postojanje podrazumevane promenjive $_ sluzi Perl programerima da skrati vreme za kucanje, a sasvim izvesno, i da nasoslobodi muka smisljanja naziva za razno-razne promenljive koje bismo inace morali definisati da programiramo udrugim programskim jezicima.

    Mozda cete se zapitati: "A kako to da smisljanje naziva za promenljive dosadi ?".

    Odgovor je veoma prost - probajte napisati neki veci program, od recimo 5000 redova koda, cak i sa komentarima. Stamislite koliko ce vam se puta desiti da na vise mesta budete u iskusenju dati isto ime za neke slicne promenljive, gde

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    42/61

    njihova slicnost, u realnosti, predstavlja apsolutnu razliku.

    To sto se vama nesto cini slicno, racunaru ne znaci nista. Racunar jednostavno ne zna da razmislja kao programer, i kadamu kazete da je nesto slicno necemu drugom, to za njega ne znaci nista. Za racunar je jedna promenljiva jedna, a ona druga

    potpuno drugacija, bez obzira sto im vi iz nekog razloga date slicna imena.

    Zapamtite, racunar i program koji pisete radi ono sto mu vi kazete. A to sto se vama neke stvari cine "slicnim", je sasvimvasa stvar :)

    No, da se vratimo promenljivoj "$_". Hajde da vidimo sta to "podrazumevana promenljiva" znaci na sledecem primeru.Prvo cemo napisati program sa nekom promenljivom, koju smo mi definisali, tj. dali joj ime, i dodelili neku vrednost.

    Neka to bude ulaz sa tastature:

    #!/usr/bin/perl

    print "Unesite neki broj pa pritisnite ENTER\n";$neki_broj = ;

    if ($neki_broj < 5) {print "manji od 5";

    }if ($neki_broj >= 5) {

    print "Perl je extra programski jezik";

    }

    Navedeni source je tacan, medjutim, mozemo ga i skratiti upotrebom podrazumevane promenljive, tako da ne lupamoglavu smisljanjem imena:

    #!/usr/bin/perl

    print "Unesite neki broj pa pritisnite ENTER\n";$_ = ;

    if ($_ < 5) {print "manji od 5";

    }if ($_ >= 5) {

    print "Perl je extra programski jezik";

    }

    Moguce je da vam se sada cini da source programa koji pisete polako pocinje da lici na neki spijunski kriptovan dokument.Mogu vam samo reci da to nije nista. Kada budete naucili jos posebnih oznaka u Perl-u postoji sansa da ce vas ostali

    programeri (koji rade u drugim jezicima) cudno gledati, tj. nece znati sta to uopste kuckate.

    Medjutim, vama ce to biti smesno, jerdok oni budu smisljali nazive za promenljive i lupali glavu gde su sta stavili uprogramu, vi cete sve to resavati mnogo brze. Jednostavno, bicete vise usredsredjeni na resavanje samog zadatka, a nena programersku birokratiju :)

    Operator reverse

    Sazetak:

    Ponekad je potrebno da elemente jedne liste poredjamo "unatraske".

    Promena Redosleda Elemenata

    Operator reverse je veoma zgodna opcija u Perl-u. Oznovni zadatak operatora reverse je da neke vrednosti iz listepostavi u obrnutom redosledu.

    Na primer, hocemo listu brojeva brojeva od 10 do 100:

    #!/usr/bin/perl

    @brojevi = ( 10..100 );

    print @brojevi;

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    43/61

    A sada hocemo listu brojeva, obrnuto :

    #!/usr/bin/perl

    @brojevi = ( 10..100 );

    @obrnuto = reverse(@brojevi);print @obrnuto;

    Operator sort

    Sazetak:

    Mozda ce nam zatrebati sortiranje elemenata liste po ASCII redosledu.

    Sortiranje Elementa u Perl-u

    Operatorsort cete koristiti u Perl-u kada je potrebno da sortirate elemente niza po ASCII redosledu.

    Na primer, imamo listu sa brojevima, imenima, posebnim znakovima:

    #!/usr/bin/perl

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    44/61

    @dzungla = qw/ 1, 22, 45, #, %, John, john, Patrick, Nick, nick/;

    print @dzungla;

    Sada cemo napraviti sredjenu, tj. sortiranu listu i isprintati je:

    #!/usr/bin/perl

    @dzungla = qw/ 1, 22, 45, #, %, John, john, Patrick, Nick, nick/;

    @sredjeno = sort @dzungla;

    print "Osnovna lista: ", @dzungla;print "\n";print "Sredjena lista: ", @sredjeno;

    U principu, kod ASCII sredjivanja, velika slova su pre malih slova, a pre slova su brojevi, pre kojih su posebni znaci.

    Nema potrebe da se zamarate detaljno ASCII sredjivanjem, bitno je da znate da tako nesto postoji i da vam moze koristitikod sredjivanja veceg broja elemenata liste.

    STDIN kao lista

    Sazetak:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    45/61

    Ulaz sa tastature se moze posmatrati na vise nacina. Sada pricamo o "kontekstu liste".

    Chomp-iranje i Perl Konteksti

    Secate se kada smo govorili o operatoru chomp ?

    Treba obratiti paznju. Kada smo chomp-irali redove u spomenutoj lekciji, radilo se o skalarnom kontekstu.

    Pored skalarnog konteksta, moguce je stvari posmatrati i kroz kontekst liste. Kontekst liste znaci da operator koristi sve redove, do kraja "datoteke". Svaki red koji je unesen preko tastature, predstavlja poseban element liste.

    Ako se desi da elemente liste ne definisete preko tastature, nego izvlacite iz nekog fajla, svi redovi fajla ce biti procitani, dosamog kraja fajla.

    #!/usr/bin/perl

    @unos = ;chomp(@unos);

    Poenta price je da nakon svakog unesenog, ili procitanog reda, naredbom chomp ( u kontekstu liste ) uklanjate oznaku zakraj reda za svaki red/element koji ste uneli.

    Potprogrami u Perl-u

    Sazetak:

    Nas program mozemo pojednostaviti pisanjim manjih potprograma.

    Podrutine po Potrebi

    Perl raspolaze sirokom lepezom opcija i funkcija pomocu kojih mozete pisati komplikovane i ozbiljne programe.

    Isto tako, sledeci filozofiju ozbiljnih programskih jezika, moguce je da napisete i potprogram. Potprogrami u Perl-u pocinjusa oznakom "sub", sto na engleskom znaci "subroutine", tj. podrutina.

    Na primer, napisacemo mali potprogram koji svaki put kada se "pozove" u glavnom programu, stampa neki broj uvecan za100.

    #!/usr/bin/perl

    #Program snimite kao uvecavac.pl

    sub uvecavam {$broj = $broj + 100;print "Ovaj potprogram uvecava neki broj za 100, svaki put kad se pokrene >>> ", $broj;print "\n";

    }

    #Da bi "pozvali" potprogram u glavnom programu koristite ampersand: "&".

    &uvecavam;&uvecavam;&uvecavam;&uvecavam;&uvecavam;&uvecavam;

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    46/61

    Moze se desiti da vam koncept potprograma nije jasan u pocetku.

    To je u redu, iz razloga sto ce vam ideja za pisanje potprograma doci onog trenutka kada vam se ucini da program kojipisete moze da se napise "citkije", tj. da se organizuje na takav nacin da odvojite neke delove programskog source-a kaoposebne celine u kojima znate sta stoji, koje lako mozete promeniti, a da ne dirate ostatak programa.

    Argumenti Perl Potprograma

    Sazetak:Argumente potprogramima mozete proslediti na vise nacica.

    Dodavanje DinamikeUprethodnoj lekcijismo obradili Perl potprograme.

    Moze vam se uciniti da su potprogrami poprilicno "staticni", tj. da rade ono stovi prethodno definisete, i da se tu pricazavrsava.

    Tacno je da vase poptrograme mozete uciniti nefleksibilnim, iz nekog razloga, ali isto je tako moguce uciniti ih "aktivnim" prosledjivanjem argumenata.

    Niko nam ne brani da napisemo neki programcic koji uzima argumente preko standardnog ulaza, tj. tastature, potprogramuradi neku operaciju nad tim programima, a u nastavku programa prikazate rezultat tog programa, ili uradite nesto trece.

    #!/usr/bin/perl

    print "##########################################################\n";print "\n";print "Program za izracunavanje aritmeticke sredine dva broja: \n";print "\n";print "##########################################################\n";

    print "\n";

    print "Unesite PRVI broj pa pritisnite ENTER\n";$prvi_broj = ;

    print "\n";

    print "Unesite DRUGI broj pa pritisnite ENTER\n";$drugi_broj = ;

    sub sredina {$sredina = ( $prvi_broj + $drugi_broj ) / 2;

    }

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    47/61

    print "Aritmeticku sredinu smo dobili iz potprograma \"sredina\".\n";

    print "Aritmeticka Sredina iznosi: ", &sredina;

    Privatne Promenljive u Perl Potprogramu

    Sazetak:

    Privatne promenljive vas resavaju nedoumica kod dodela imena.

    Globalno ili Privatno ?

    Da bi ste ispratili ovu lekciju, potrebno je da ste razumeli lekcije o Perl potprogramima i o argumentima u Perlpotprogramima.

    Promenljive mogu biti globalne i privatne. Privatne promenljive, ili leksicke promenljive, se prave upotrebljavajuci oznaku,tj. operator "my".

    Privatne promenljive nece biti menjane, ako negde drugde u programu postoje promenljive istog imena, a vi nad njima, ilipomocu njih, budete izvrsavali odredjene operacije.

    One su, jednostavno receno, promenljive sa "ogranicenom teritorijom".

    Mozemo to predstaviti pomocu malog programa, printajuci vrednosti globalnih i privatnih promenljivih :

    #!/usr/bin/perl

    #Snimite program kao privatne.pl

    $ime = "John";$prezime = "Smith";

    print "Globalne promenljive: \n";print "\n";print "Ime: ", $ime;print "\n";print "Prezime: ", $prezime;print "\n";

    sub privatno {my ($ime, $prezime);print "Unesite neko Ime: ";$ime = ;print "Ime iz potprograma je:", $ime;print "Unesite neko Prezime: ";$prezime = ;

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    48/61

    print "Prezime iz potprograma je:", $prezime;}

    print "\n";print "Pokretanje potprograma...\n";print "\n";

    &privatno;

    print "\n";print "Potprogram \"\&privatno\" je izvrsen uspesno.\n";

    Pragma Use Strict

    Sazetak:Ispravnost vecih programa se stice disciplinom kod pisanja manjih.

    Uvodjenje Discipline na Perl Nacin

    Ovu lekciju bi trebali proci nakon citanja lekcije o davanju imena u Perl-u, Pragma-ma,

    Programiranje je zanimljiva stvar. Uvek cete moci da uradite to sto ste zamislili na vise nacina. Ponekad cete imati tolikomogucnosti da ce dvoumljenje sta upotrebiti predstavljati vecu boljku od svega ostalog.

    Verovatno cete pokusati preduprediti probleme upotrebom Pragme use strict, koja namece svojevrsnu disciplinu prilikompisanja programa. Ovom pragmom forsirate neka pravila koje je vreme iznedrilo kao korisnam, a ta pravila su uvedena od

    nekih ozbiljnih i nadarenih programerskih umova.

    Pragmu use strict uvek navodite na pocetku programa (u kodu), a definitivno je dobra ideja da je koristite od pocetkapisanja programa (vremenski).

    Ako vam se kojim slucajem desi da ubacite use strict u program koji ste napisali ranije, sasvim je izvesno da cete prilikomizvrsavanja programa dobiti gomilu upozorenje. Cak i pored toga, ako ste pocetnik, nema potrebe da se opterecujete. Zaizvesno vreme, kada akumulirate malo vise znanja, znacete sta moze da vam napravi problem u napred, sta moze da seizbegne, a sta ne.

    Pragmu use strict aktivirate bas tako:

    #!/usr/bin/perl

    use strict;

    #A ispod ovog komentara slede gomile i gomile koda...

    print "...rezultat mnogih neprospavanih noci...\n";

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    49/61

    Operator Return

    Sazetak:Uz pomoc Operatora Return mozemo dobiti neku vrednost u potprogramu, i proslediti rezultat dalje, ako je to

    potrebno.

    Return i Podrutine u Perl-u

    Da bi ste lakse razumeli ovu lekciju, bilo bi dobro da se podsetite price o potprogramima u Perl-u, i sortiranju elemenata

    liste.

    Upotrebicemo i primer iz lekcije o sortiranju elemenata. Napravicemo listu "@dzungla"kombinavanu od brojeva, imena iposebnih znakova, ali u ovog puta u zamisljenom potprogramu (podrutini) koju cemo nazvati sortiranje_liste:

    @dzungla = qw/ 1, 22, 45, #, %, John, john, Patrick, Nick, nick/;

    Podrutinu, ne zaboravimo, pocinjemo sa "sub":

    sub sortiranje_liste {@dzungla = qw/ 1, 22, 45, #, %, John, john, Patrick, Nick, nick/;@sortirano = sort(@dzungla);return @sortirano;

    }

    Ako sad pokrenete potprogram @sortiranje_liste, u nekom zamisljenom, vecem programu (return.pl):

    #!/usr/bin/perl#Programcic snimite kao return.pl

    sub sortiranje_liste {@dzungla = qw/ 1, 22, 45, #, %, John, john, Patrick, Nick, nick/;@sortirano = sort(@dzungla);return @sortirano;

    }

    print "Napomena, da nismo stavili print ispred potprograma, ne bi videli njegovrezultat, ali bi on (potprogram) svejedno bio izvrsen.\n\n";

    print &sortiranje_liste;

    Unos Parametara

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    50/61

    Sazetak:

    Koristite napredne opcije kod unosa parametara - ako vam to odgovara.

    Napredna Upotreba Unetog

    Da, tacno je da smo u jednoj od prethodnih lekcija obradili unos parametara preko tastature u Perl-u, ali to ne znaci da setu prica zavrsava.

    Obzirom da smo prosli kroz dosta lekcija, vreme je da ih sistematizujemo.

    Da ponovimo na brzinu. Rekli smo da uzimamo parametre sa tastature preko komande :

    $uneto = ;chomp($uneto);

    Kako mozemo biti sigurni da je nesto uopste uneto preko tastature. Prisetimo se lekcije o "while" i "defined".

    while (defined($uneto = )) {print "Uneto preko tastature: $uneto \n";print "Ovde ide neki vas source...\n";

    }

    Secate se price o podrazumevanoj promenljivoj "$_" ?

    while (defined($_ = )) {print "Uneto preko tastature: $_ \n";print "Ovde ide neki vas source...\n";

    }

    U kontekstu liste, mozete upotrebiti i "foreach" :

    foreach () {print "Uradi nesto ....\n";

    }

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    51/61

    Kad smo vec kod onog znaka "^Z". To znaci da smo pritisnuli na tastaturi kombinaciju za prekid CTRL + Z. Bar sto se ticeWindows sistema.

    Unos preko Dijamanta

    Sazetak:

    Dijamanti su prava stvar. Kod Perl-a se koriste za pravljenje programa koji rade zadavajem parametara preko

    tastature, na pocetku izvrsavanja.

    Pokretanje iz Terminala

    Ako ste mislili da parametre za program mozete unositi samo u programu, kucajuci preko tastature, ili da su parametridirektno uneseni u source programa - varate se.

    Parametre vasem programu mozete "proslediti" preko tastature i pomocu operatora "dijamant".

    Unos preko dijamanta je specifican po tome sto unapred napravite svoj program da se pokrece sa komandne linije na takavnacin da se, nakon navodjenja imena programa, navedu i parametri (na istoj liniji), zatim se pritisne ENTERi

    program nakon toga krene sa izvrsavanjem.

    Dakle, bitno je napomenuti da ste vi inapred osmislili vas program da prima ulazne podatke preo komadne linije, sto cetecesto raditi na UNIX i slicnim sistemima, posto su oni jednostavnoprirodno okruzenje za programiranje u Perl-u.

    Na UNIX sistemima program bi pokretali ovako:

    $ ./vas_program parametar1 parametar2 parametar3

    Naravno, imacete onoliko paramatara koliko vam treba da pokretanje programa a da ne bude preterano konfuzno. Akoimate mnogo parametara za unos u terminalu, bolje razmislite o tome da program nekako uprostite.

    To sto ste vi programer, ne znaci da obicni korisnici vaseg programa imaju razumevanja za cackanje po tastaturi vise nego

    sto smatraju za shodno...

    Korisnici su , generalno, cudna stvorenja..., pogotovo ako misle da to moze bolje. U tom slucaju im predlozite da nauceprogramiranje :)

    Da vidimo sad kako proslediti programu parametre u "terminalu" :

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    52/61

    #!/usr/bin/perl

    # !!! Ovaj primer ce raditi na UNIX sistemima iz komandne linije, ne i na Windowsu is DOS prompt-a.

    while () {chomp;print "Uneto je: $_ \n";

    }

    Bez obzira sto sam naveo da program nece raditi na Windows sistemima tako da prihvati ulaz preko DOS prompt-a, ipakga pokrenite, cisto da vidite sta ce se desiti :)

    Naredba printf

    Sazetak:

    Ponekad je potrebno napraviti sablone za jasniji prikaz podataka.

    Formatiranje Izvestaja

    Naredba printf se koristi kada su nam potrebni takozvani sabloni za stampanje. Naredbi print prosledjujemo sablon a zatimi elemente kojim hoce omda oppunimo taj sablon.

    Bitno je samo da znate da za tekst upotrebljavate jedne oznake, za brojeve druge. Na primer, za tekst sablone cete koristiti

    oznaku "%s", bez navodnika :

    printf "Ovde ubacujemo %s, ovde %s, a ovde %s.", "prvo", "drugo", "trece";

    A mozemo definisati i promenljive:

    $ime = "Michael";$prezime = "Smith";$godine = trideset;

    printf "Moje ime je: %s, prezime: %s, i napunio sam: %s.", $ime, $prezime, $godine;

    Sto se brojeva tice, postupak je slican. Umesto "%s", kod brojeva se najcesce koristi "%g", posto ce Perl pokusatipredvideti kako ste zeleli da broj bude prikazan, u zavisnosti od eventualnih operacija nad brojevima:

    printf "Prvi broj: $g, rezultat mnozenja: %g, veci broj: $g", 3, 5 x 6, 34 ** 25;

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    53/61

    Ako vam je potrebno zaokruzivanje, upotrebicete "%d":

    printf "Ovaj broj ce biti zaokruzen: %d", 454312.1434235;

    Za ljubitelje tabelarnog prikaza, tu je zadavanje sirine polja "%15d" :

    printf "Ovaj broj ce biti zaokruzen: %15d\n", 454312.1434235;printf "Ovaj broj ce biti zaokruzen: %15d\n", 123123.43424;printf "Ovaj broj ce biti zaokruzen: %15d\n", 6543.453123;

    Umesto "%15d" mozete staviti sirinu polja koja vam odgovara.

    Prosledjivanje iz Liste

    Prosledjivanje elemenata iz liste naredbi printf se sastoji u pravljenju liste, definisanju formata sablona, i prosledjivanjuelemenata:

    my @lista = qw( Michael Nick John );

    my $sablon = "Imena su: \n" . ("%20s\n" x @lista);printf $sablon, @lista;

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    54/61

    Identifikatori Datoteka

    Sazetak:

    Identifikator datoteke je veza do datoteke.

    Veze, Vezice i Datoteke

    Ako cete nesto koristiti u Perl-u onda su to identifikatori datoteka. Identifikatori datoteka nisu same datoteke, identifikatorisluze kao specificna veza do datoteke.

    Preporuka za pisanje identifikatora datoteka, tj. veze, je da koristite velika slova. Jedan od razloga je i to da cete brze

    zapaziti identifikatore od ostalog dela programskog koda. Zamislite da sve u programu pisemo malim slovima, bez crtica iposebnih znakova. Tesko da bi pisanje u takvom programskom jeziku bilo zadovoljstvo...

    Bitno je da zapamtite da postoji sest osnovnih identifikatora datoteka u Perl-u. To su STDIN (standardni ulaz), STDOUT(standardni izlaz), STDERR(izlaz za greske), DATA, ARGV i ARGVOUT. Za vas su sada najbitnije prve tri.

    Ono sto je narocito zanimljivo, je da u zavisnosti od vasih potreba, za standardni ulaz mozete birati tastaturu ili datoteku, aza izlaz, stampac ili monitor. Naravno, postoji jos mnogo opcija, ali za pocetak je dovoljno ovo sto sada znate.

    Jedna od prednosti poznavanja UNIX i slicnih sistema je upravo u laksem savladavanju koncepta preusmeravanja (piping)prilikom ucenja programiranja. Preusmeravanje je proces koji se cesto koristi na Unix sistemima, pri cemu se izlaz jednogprograma koristi kao ulaz u drugi program. Najkrace receno.

    Naravno, niko vam ne brani da preusmeravate vise programa, ali za pocetak je sasvim dovoljno da se zabavljate sa dvaprograma. Komplikovanije stvari neka dodju kasnije, bitno je da su vam osnove jasne. Kod malih programa bar znate gde

    da odmah trazite gresku.

    Pravljenje Identifikatora Datoteke

    Sazetak:

    Pravljenje identifikatora datoteka u Perl-u je stvar jednog programskog reda.

    Kako do Veze ?

    Ne citajte ovu lekciju ukoliko niste procitali osnove identifikatora datoteka u Perl-u.

    Ukoliko jeste, da navedemo kako se prave identifikatori datoteka:

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    55/61

    open LOG, "danasnji";open LOG, "izvestaj";open PRIJAVA, ">>kvarovi";

    U prva dva slucaja, koristimo identifikator "LOG", kako bi procitali datoteke "danasnji" i "jucerasnji".

    U trecem slucaju, oznakom ">izvestaj", kreiramo datoteku izvestaj radi upisa podataka u nju pomocu identifikatora"NOVO".

    U cetvrtom slucaju, koristimo identifikator "PRIJAVA", kako bi dodali pomocu ">>" nove podatke u datoteku"kvarovi".

    Dakle, imamo vise identifikatora pomocu kojih citamo (), i dodajemo jos sadrzaja (>>) u nekudatoteku.

    Na primer, zelimo da sadrzaj neke promenljive upisemo u datoteku "proba.txt":

    #Mozete snimiti ovaj primer kao identifikatori.pl

    $izlaz = "proba.txt";open UPIS, "> $izlaz";

    print UPIS "test test test\n";print UPIS "Ovo je upisano u datoteku proba.txt u c:\\Perl folderu\n";

    I zaista, ako otvorite u DOS programu EDIT, ili u bilo kom editoru teksta fajl "proba.txt", koji se nalazi u folderu"c:\Perl", videcete sledece:

    Zatvaranje Identifikatora Datoteke

    Sazetak:

    Identifikator ne morate zatvoriti, ako bas necete. Mada, ne bi bilo lose.

    Kulturno Zatvaranje Veze sa Datotekom

    Ne citajte ovu lekciju ukoliko niste procitali identifikatore datoteka ipravljenje identifikatora datoteka u Perl-u.

    Bez obzira sto je Perl odlican programski jezik, pa ce za vas uraditi dosta toga kao sto je automatsko zatvaranje datotekakada program prestane sa radom, to ne znaci da mozete biti aljkavi.

    Kada zavrsite sa pravljenjem identifikatora datoteka, i nekim operacijama nad njima, mozete i zatvoriti identifikatordatoteke komandom "close IDENTIFIKATOR":

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    56/61

    Koristicemo primer iz prosle lekcije opravljenju identifikatora :

    #Mozete snimiti ovaj primer kao identifikatori.pl

    $izlaz = "proba.txt";open UPIS, "> $izlaz";

    print UPIS "test test test\n";print UPIS "Ovo je upisano u datoteku proba.txt u c:\\Perl folderu\n";

    close UPIS;

    Teorijski bi trebalo nakon svakog otvaranja i da zatvarate identifikator, mada ce vas Perl program perfektno raditi i bez

    toga. A ako se odlucite na zatvaranje identifikatora, onda to ne radite negde pred kraj programa, vec cim zavrsite saoperacijama nad datotekom.

    Funkcija die

    Sazetak:Funkcija "die" je korisnija nego sto se misli.

    Obavesti i Prekini Izvrsavanje Programa

    Opustite se, ovde "die" ima veoma cenjenu ulogu :)

    Funkcija die u Perl-u se koristi kada zelite, nakon nastale greske, da program prestane sa izvrsavanjem, tj. da nakonuocene greske, na ekran bude "izbacena" poruka sa opisom nastale greske.

    Na primer, ako ne mozemo da napravimo datoteku "izvestaj", program neka napise: "Ne mogu napraviti datoteku izvestaj,i upisati podatke u nju."

    if (! open LOG, ">izvestaj" ) {die "Ne mogu napraviti datoteku izvestaj, i upisati podatke u nju: $!";

    }

    Moguce je da vam ovde dve stvari nisu jasne. Prva je ono "! open LOG". Taj uzvicnik u prevodu znaci : "ako ne moze".Znaci, "ako ne moze da se otvori identifikator LOG, tj. napravi fajl "izvestaj", onda neka se isprinta poruka o gresci.

    Druga stvar je ova oznaka "$!". Ta oznaka na kraju poruke o gresci sluzi tako da vas sistem dodatno obavesti o tome stase desava, sem one poruke o gresci koju ste vi, vasim recima, definisali.

    U principu, tu oznaku treba odmah da navedete iza poruke koju ste vi definisali posle naredbe die, a ne nakon sto se josneka operacije izvrsi u programu, pa dodje do eventualne konfuzije.

    Funkcija warn

    Sazetak:Funkcija "warn" vas obacvestava o gresci, ali ne stopira program.

    Obavesti o Greskama, pa Nastavi Izvrsavanje

    Funkcija warn, je dosta slicna funckiji die u Perl-u, ali postoji bitna razlika.

    Umesto da program prekine izvrsavanje, sto je slucaj kod funkcije die, program ce nakon poruke koja ide posle "warn" -nastaviti izvrsavanje.

    Dakle, nema napustanja programa. Kao i funkcija die, mozete funkciom warn dobiti podatke o imenu programa i

    programskoj liniji na kojoj je greska.

    To sto ova mogucnost postoji, ne znaci da mozete tolerisati program koji ste napisali, a koji se svaki cas oglasava sa nekomgreskom. Jednostavno, proveravajte source korak po koraki pravite arhivu programa koga pisete nekim redosledomkoji ce vam biti logican i sutra.

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    57/61

    Hesevi: keys/values

    Sazetak:

    Heseve koristite kada za jedan element obavezno imate vrednost ili opis.

    Kljucevi i Pridruzene Vrednosti

    Hesevi su specificni po tome sto se elementi u hesu "uparuju". recimo , kada smo pisali o nisovima i listama, imali smoelemente koji su u listi bili indeksirani po brojevima.

    Da uprostimo, umesto indeksiranja po brojevima, sada elemente u hesu mozete nalaziti po "parnjaku" tog elementa.

    Na primer, napravicemo hes %proizvodi, sa cenama tih proizvoda:

    %proizvodi = ("Jabuke" => 25,"Kruske" => 44,"Breskve" => 18,

    );

    Verovatno ste uocili da za kreiranje heseva koristimo oznaku za procenat "%".

    Prethodni hes smo mogli napisati i na jednoj liniji, na malo drugaciji nacin, ali mislim da ce vam to delovati malo "zbijeno":

    %proizvodi = ( "Jabuke", 25, "Kruske", 44, "Breskve", 18 );

    Kljucevi i vrednosti ? Keys and values ?

    Kljucevi su ono sto je levo ("Jabuke"), a vrednosti su ono sto je desno (cene, tj. 25 u slucaju jabuka ).

    Odlicna stvar je sto iz hesa mozete, kroz liste, izdvojiti samo kljuceve, ili samo vrednosti.

    @artikli_kljuc = keys %proizvodi;@artikli_cene = values %proizvodi;

    Ako to sklopimo u mali programcic:

    %proizvodi = ("Jabuke" => 25,"Kruske" => 44,"Breskve" => 18,

    );

    @artikli_kljuc = keys %proizvodi;@artikli_cene = values %proizvodi;

    print "Lista Proizvoda: ", @artikli_kljuc;print "\n";

    print "Cene: ", @artikli_cene;

    Ako vam prethodni primer izgleda previse "nabacano", kada ga pokrenete, probajte sa:

    %proizvodi = ("Jabuke" => 25,"Kruske" => 44,"Breskve" => 18,

    );

    @artikli_kljuc = keys %proizvodi;@artikli_cene = values %proizvodi;

    foreach $produkt ( @artikli_kljuc) {print "Proizvod: ", $produkt;

    print "\n";}

    print "\n";

    foreach $cena ( @artikli_cene) {print "Cena: ", $cena;

    d - Zasto uciti Perl ? - webpretraga.com http://webpretraga.com/perl/perl-brzi-prirucnik/perl-tutorial.html

    f 61 26.12.2011 11:13

  • 8/3/2019 Perl - Webpretraga

    58/61

    print "\n";}

    Funkcija each

    Sazetak:Funkcija "each" je korisna kod izvlacenje elemenata iz hesa radi lepseg prikaza, ako nista drugo.

    Kljuc/Vrednost Listanje

    Nemojte