Programming | Perl és CGI » Kusper Gábor - A Perl programozási nyelv

Datasheet

Year, pagecount:2010, 4 page(s)

Language:Hungarian

Downloads:148

Uploaded:July 20, 2010

Size:60 KB

Institution:
-

Comments:

Attachment:-

Download in PDF:Please log in!



Comments

No comments yet. You can be the first!

Content extract

http://www.doksihu A Perl programozási nyelv rövid bevezetõ áttekintés Készítette: Kusper Gábor Bevezetés: A Perl (Practical Extraction and Report Language) hasonlóan a Javához, hordozható, interpreteres nyelv, amely különösen alkalmas szövegfeldolgozó alkalmazások készítésére. A Perl támogatja, magas szintű nyelv lévén, a strukturált programszerkezetet, subrutinokat, habár a rekordokat már nem ismeri. Legfőbb erénye, hogy a UNIX rugalmas file kezelését használja, azt tovább fejleszti. A Perl ingyenes, az WWW-ről szabadon letölthető. Ez a kivonat a Perl 4-es verziója alapján készült, bár már széles körben elterjedt a Perl 5 is. Szerencsére a 4-es verzió teljes mértékben kompatibilis az 5-ös verzióval. A Perl-t Larry Wall fejlesztette ki munkája megkönnyítésére. Jelentés generátorra volt szüksége, amely több szöveges file-ból adott szabály alapján egy jelentést generál. Mivel az ehhez szükséges eszközök akkor nem

álltak rendelkezésre, Wall egy új eszközt hozott létre a feladat elvégzéséhez. A Perl nyelvnek a C programozási nyelvhez nagyon hasonló a struktúrája. Egy Perl program első pillantásra úgy néz ki, mint egy C program. A C valamennyi operátora megtalálható benne, és a C programvezérlõ szerkezeteinek (if, while) többsége is. A C nyelvvel szemben viszont a Perl nyelv nem tartalmaz mutatókat, struktúrákat és definiált típusokat. A Perl igen sokoldalú eszköz. A teljesség igénye nélkül nézzük át a Perl legfontosabb képességeit. • • • • • • • • Asszociatív tömbök Automatikus típuskonverzió egész számok, lebegőpontos számok és karakterláncok között Automatikus tömbátméretezés Reguláris kifejezések erős támogatása File I/O műveletek támogatása C operátorok teljes készlete szöveg összehasonlító operátorokkal kibővítve Listamanipuláló függvények Subrutinok Hello világ! Perl nyelven: #Hello vilag,

harom kulombozo modon printf("Hello vilag! "); printf("%s ",Hello vilag!); print "Hello vilag"," "; Ez a Perl program háromszor kiírja a képernyőre, hogy Hello vilag. Ez a rövid program is sok tanulsággal szolgál. A Perl nyelvben a hashmark (#) karakterrel kezdődnek a megjegyzések. http://www.doksihu A program nem tartalmaz main függvényt, azaz nincs fõ programrész, a Perl interpreter a script végrehajtását az első utasításon kezdi. Az első printf akár C programban is szerepelhetne. Itt kell megjegyezni, hogy a Perl különbséget tesz " és között. Macskakörmök között végez helyettesítést, aposztrófok között nem. Tehát jelen esetben hatására sort emel A második printfben azért használunk (Hello vilag!) aposztrófokat, mert nincs helyettesítés. Végül a harmadik utasítás a print függvényt használja, ami a C nyelvben nem található meg. Ebben a sorban a függvény legszembetűnőbb

jelemzője, hogy hiányoznak a szokásos zárójelek. A Perl függvényekben mindenütt használhatjuk a zárójeleket, de legtöbb esetben ez nem kötelező. A Perl csak akkor igényli a zárójelet, ha ezek nélkül egy kifejezés két- vagy többértelmű lehet. A Perl szokásos kiterjesztése a *.pl A perl interpreter meghívása: C:PERL> perl file.pl Ha UNIX scriptet irunk akkor elsõ sorában fel kell tüntetni, hol található a Perl interpreter #!/usr/bin/perl print "Hello vilag! "; Az első sor utasítja a rendszert, hogy a Perl környezetet használja ennek a script file-nak a futatásához. Ez az első sor viszont a Perl interpreternek csak egy megjegyzés A perl hibakeresőjét a következő paranccsal érhetjük el: C:PERL> perl -d file.pl A Perl adattípusai: A Perl nyelvben egy adat szám vagy karakterlánc lehet. Egzetlen adatot skalárnak nevezünk Az alábbiakban lássunk néhány skalár értéket (literát). • • • • decimális: 127, 127.0,

127E2 hexadecimális: 0x7F , 0x7f oktális: 0177 karakterlánc: "Hello vilag! " , Hello vilag! A Perl saját magán belül minden számot dupla pontosságú, lebegőpontos számként tárol. Ez egyszersmind azt is jelenti, hogy a Perlben nincs egész számú adattípus. Ugyanakkor a Perl mindig automatikus adatkonverziót végez, amikor szükséges, például maradékszámításnál. A Perl változói: A Perl a következő három változótípust használja: skalár, tömb és asszociatív tömb. A változónevek érzékenyek a kis- és nagybetűs írásmódra. A változók típusokba sorolása nem úgy történik, mint a C nyelvben. Egy skalárváltozó például bármilyen skaláris értéket tárolhat, és az adattípusok között automatikus a konverzió. Továbbá a Perl nyelvben egy script file-ban nem kell dekralálni a változókat. Ha egy változó nincs dekralálva, akkor az a Perl globális változója. Skalár változók: A Perl nyelvben a skalár változók

nevei mindig e a dollár jellel ($) kezdődnek. Pl: $szam=35; $string=Im eljottunk szep lanyodert http://www.doksihu print ($szam, ,$string); Ha a fenti utasitasokat a pelda1.pl file-ba irjuk, és interpretáljuk: C:PERL> perl pelda1.pl 35 Im eljottunk szep lanyodert A fenti program hatására a 35 Im eljottunk szep lanyodert szöveg jelenik meg. Tömbváltozók: Egy tömb olyan változó, amely több skalár értéket tárol. Az alábbi Perl utasítások tömbváltozókra mutatnak példát: @napok=(Va,He,Ke,Csu,Pe,Szo); print(@napok); print($napok[4]); @munkanapok=@napok[1.5] #munkanapok Hetfo-Pentek @ureslista=() A tömbváltozókra való hivatkozások általában a @ karakterrel kezdődnek. Az első sor létrehozza és feltölti a tömböt. Az értékeket egy listával adtuk meg, de ezt sok egyéb módon is megtehetjük. A második parancs hatására kiíródik az egész tömb tartalma, hiszen a @napok-kal az egész tömbre hivatkozunk. Ha a tömb egy elemére vagyunk

kíváncsi, akkor az már egy skalár érték, tehát egy skalárváltozó tartalma. Egy elemre a [] jelek közé tett indexszel hivatkozunk, és a tömb neve elé dollárt írunk, hisz skalár értékre vagyunk kíváncsiak. Erre látunk példát a harmadik sorban, ami kiírja, hogy Pe, mert az indexelés 0-val kezdődik. A negyedik utasítás úgy inicializálja a @munkanapok tömböt, hogy a tömbhöz a @napok tömb egy szeletét (slice) rendeli. A szelet egy lista része, és a Perl ilyen módon hivatkozik egy tömb részére. Asszociatív tömbváltozók: Egy asszociatív tömb típusú változó annyiban hasonlít egy tömbváltozóra, hogy az előbbi is egy sor skalár változót tárol. A különbség abban van, hogy míg egy tömbnek egész indexeket kell használnia a tömb valamely elemének kijelöléséhez, addig az asszociatív tömb bármilyen értéket használhat ehhez. Egy asszociatív tömb indexértékeit kulcsnak (keys) nevezzük Tekintsük az alábbi példákat:

$korok{Feri}=35; $korok{Mari}=25; print @korok{Feri,Mar}; # az eredmeny 35 25 print keys(%korok}; # az eredmeny Mari Feri for $nev (keys(%korok)) { print "$nev eveinek szama $korok{$nev} "; } A Perl nyalvű script file-ok úgy azonosítanak egz asszociatív tömböt, hogy annak indexét (a kulcsot) kapcsos zárójelek ({}) közé tesszük. Az @korok{Feri,Mari} hivatkozás kapcsos zárójelek közötti indexet használ, ami azt jelenti, hogy asszociatív tömb. A tömb előtti @jel egy tömbértéket jelez, azaz több skalár http://www.doksihu értéket, hasonlóan ahhoz, ahogyan egy dollárjel egy tömbhivatkozás elött egy skalár értéket jelez. A printt keys(%korok) példa a Perl keys operátorát mutatja be, ami egy asszociatív tömb teljes kulcslistáját adja vissza. A %korok hivatkoyásban a % előtag jelzi, hogy a hivatkozás asszociatív tömbre vonatkozik. Tehát ennek hatására a keys, és a hasonló operátorok nem kezdik elölről olvasni a tömb

tartalmát, hanem megjegyzik hol jártak a tömb feldolgozásában. Az utolsó példa is tartalmazza a keys operátort, és bemutatja, hogyan jeleníthető meg for ciklussal az asszociatív tömbben lévő összes asszociáció. Figyeljük meg, hogy a for ciklus magjában macskakörmök között változókra hivatkozunk. A Perl a karakterlánc kiértékelésekor a hivatkozásokat a változók értékére cseréli föl. A Perl aposztrófok közt lévő karakterláncban nem végez helyettesítést