Perl (programozási nyelv)
A Perl egy általános célú, magas szintű, interpretált, dinamikus programozási nyelv, melynek első verzióját Larry Wall 1987. december 18-án tette közzé. Stílusában és funkcionalitásában sokat merít a C, sed, awk és sh nyelvekből. A Perl egyik legfontosabb része a reguláris kifejezések széles körű támogatása, mely által kiválóan alkalmas nagy méretű szöveg- vagy adatfájlok egyszerű feldolgozására. Az 5-ös változat megjelenésével a 90-es években elterjedt a dinamikus, CGI alapú weboldalak nyelveként, de jellemzőbb felhasználási területei a már említetteken túl a rendszeradminisztráció, a hálózati programozás, a pénzügyi informatika és a bioinformatika. A perl interpreter és az alap disztribúció a GNU GPL vagy az Artistic License figyelembevételével elérhető, felhasználható és módosítható szabad szoftver. TörténetKorai változatok (1987–1993)Larry Wall 1987-ben kezdte el fejleszteni a Perlt, amikor az Unisysnél dolgozott. Az 1.0-s kiadást a Az eredeti dokumentáció egyetlen – egyre hosszabb – man oldal volt. 1991-ben jelent meg a Programming Perl, avagy a „tevés könyv”, és vált tulajdonképpen a nyelv referenciájává. Ezzel együtt a főverzió 4-re változott: így könnyebb volt hivatkozni a könyv által ismertetett változatra. A Perl 4 egészen a 4.036-os verzióig húzta, melyet 1993-ban adtak ki. Eddigre Larry kilépett a fejlesztéséből, hogy az 5-ös változat kialakításával foglalkozhasson. Perl 5 – korai évek (1994–2000)1994 májusában hozták létre a perl5-porters levelezőlistát, elősegítendő az új változat különböző platformokra portolását. A levelezőlista azóta is a Perl 5 fejlesztésének elsődleges kommunikációs eszköze. 1994. október 17-én elkészült az 5.000. A kódértelmezőt szinte teljesen újraírták, a nyelv képes lett objektumok, referenciák, helyi változók, modulok kezelésére. A modularitás lehetővé tette a nyelv kiegészítését, így a Perl magjához kevesebbet kellett hozzányúlni. A Perl életében talán legfontosabb esemény 1995. október 26-án történt meg, amikor létrehozták a CPAN-t, mely a Perlben írt modulok gyűjtőoldala. Ezzel egy központi helyről (illetve annak számos tükörszerveréről) lehetett letölteni kiegészítéseket, például a már említett CGI modult. Mára körülbelül 28 ezer csomagot („disztribúciót”) tartalmaz, közel 11 ezer felhasználótól, ezzel az egyik legnagyobb szabadszoftver-gyűjtőoldal a világon. Magát a Perlt is a CPAN-on teszik közzé. 1996-ban, az 5.002 kiadással bekerültek a nyelvbe a prototípusok, amivel lehetségessé vált olyan szubrutinok készítése, amelyek úgy működnek, mint a beépített függvények. A ’97-ben kiadott 5.004-es változat bevezette a UNIVERSAL alapobjektumot, lehetőséget arra, hogy modulok betöltésekor megköveteljük modulverziót, valamint az alap disztribúció része lett a CGI modul. Szintén ekkor lett elérhető a Perl Microsoft Windows operációs rendszeren. A hagyományos verziószámozás utolsó kiadása 1998 közepén jelent meg. Az 5.005 sokat javított a regex-motoron, bevezették a Szintén ekkor jött létre a PerlMonks, egy olyan weboldal, ahol a felhasználók egymás Perllel kapcsolatos kérdéseire tudnak válaszolni. Perl 6, stagnálás (2000–2008)
2000. március 22-én megjelent az 5.6, rengeteg újítással: 64 bites rendszerek támogatása, Unicode-támogatás, 2 GiB-nál nagyobb fájlok támogatása, Ugyanekkor Larry Wall egy új projektbe kezdett, az akkor még a Perl folytatásának szánt 6-os verzióba. 2000 során 361 RFC dokumentum gyűlt össze a Perl közösségből, a tervek szerint ezek mentén fejlesztették volna az új változatot. 2001-ben elkezdődött az Kinyilatkoztatások (Apocalypse) megírása – ezek a dokumentumok foglalták össze az új generációs Perllel szembeni felhasználói elvárásokat. Néhány évig a Perl 6 csak papíron létezett, és ott is meglehetősen absztraktan. Az 5.8-at 2002-ben adták ki, javított a Unicode alrendszeren, beépítettek egy teljesen új IO réteget, javítottak a számolási pontosságon. Ez a változat további kilenc javítást kapott, a legfrissebbet 2008-ban. Jelenleg is a legelterjedtebb változat, a nagy céges környezet ritka szoftverfrissítéseinek köszönhetően. 2004-ben a Perl 6 fejlesztői megpróbálták összefoglalni a Kinyilatkoztatásokat, de ehelyett ezek az új dokumentumok (Synopsis) végeredményben specifikálták az új nyelvet, és a konkrét fejlesztés megkezdődhetett. A Perl 5 pedig várta a folytatását, az új Perlt. Modern Perl (2008-tól napjainkig)2007 utolsó napjaiban – a Perl megjelenésének 20. évfordulójára időzítve – végre kiadták az 5.10-et, ezzel szakítva azzal a tévhittel, hogy a Perl következő verziója a 6-os lesz. Mivel a 6-os viszont sehogy sem akart elkészülni, néhány érdekes újdonságot beolvasztottak belőle az 5-ös széria új kiadásába: hasznos új funkciók a reguláris kifejezésekben, Az 5.11-es fejlesztési fázisban új alapokra helyezték a Perl fejlesztését, a további időhúzást elkerülendő. A terv az volt, hogy minden hónapban kiadnak egy fejlesztői változatot, minden évben egy új nagy kiadást, valamint minden stabil kiadás után negyedévente ahhoz javító kiadásokat. Ezzel a Perl fejlesztése új életre kelt, 2010 óta minden évben sok újdonság látja meg a napvilágot az új stabil verziókkal. Az 5.12 teljes Y2038-felkészültséget, Unicode 5.2-t, DTrace-támogatást hozott. 2011 májusában kiadták az 5.14-et, jobb IPv6-támogatással, majd 2012 májusában az 5.16-ot. Ez utóbbiban a Ez az éra hozta el a modern Perl mozgalmat is. Ez a kifejezés egy olyan fejlesztői kultúrát takar, ami él a CPAN adta lehetőségekkel, kihasználja a nyelv új képességeit, és nagyon komolyan veszi a helyesen működő, jó szoftver készítését. A nevet magán viseli chromatic könyve, az ingyenesen elérhető Modern Perl,[4] de olyan szervezetek is képviselik, mint az Enlightened Perl Organization. 2014-ben két fő változatát fejlesztik. Az elterjedtebb, támogatottabb változat az 5-ös, mely az 5.20.1 verziónál tart. A 6-os változat a Perl teljes újragondolása lesz, a nyelvtan szigorúbb, gépi módon könnyebben értelmezhetőbb felépítését és a régi nyelv csapdáinak megszüntetését célozva meg. A két változat egymással nem kompatibilis.[5] A névrőlA nyelvet eredetileg Pearl-nek hívták, ami angolul gyöngyöt jelent. Larry Wall rövid és pozitív hangvételű nevet keresett a nyelvnek, azonban a szótárban végignézve az összes három- és négybetűs szót, egyik sem tetszett neki igazán. Megfordult a fejében az is, hogy feleségéről, Gloriáról nevezze el az új nyelvet. Végül a Pearl szóra esett a választása (a Biblia szerint szerint: „egy nagy értékű gyöngy” / „one pearl of great value”[6]). A hivatalos kiadás előtt azonban rájött, hogy már létezik ilyen névvel programnyelv, így gyorsan megváltoztatta a név írásmódját, kihagyva az a betűt. A nevet nagy kezdőbetűvel használjuk (Perl) ha magára a programozási nyelvre hivatkozunk, és kicsivel (perl), ha az interpreterre. Ahogy azt a Perl közösség is állítja: „Only perl can parse Perl” (csak a perl képes a Perlt értelmezni). A PERL írásmód helytelen. Magyarul jellemzően fonetikusan ejtjük, de előfordul az angolos (/pɜːl/, /pɝl/) kiejtés is. Bár a Perl nem betűszó, néhány rövidítést társítanak a névhez. Ilyen például a Pathologically Eclectic Rubbish Lister (kb. betegesen túldíszített selejt-listázó). A leginkább elterjedt és szakkönyvekben, illetve a Perl saját oldalán is használt rövidítés-magyarázat a Practical Extraction and Report Language (gyakorlati (szöveg)kinyerő és jelentéskészítő nyelv). Ez a magyarázat ráadásul összecseng az eredeti Pearl névvel is, amennyiben az And szót is bevesszük a rövidítés betűi közé. SzemléletLarry Wall nyelvészetet tanult, így a nyelv tervezésekor kifejezetten a természetes nyelvek irányából próbálta megközelíteni a problémát. Ezzel valamelyest összecseng az, hogy nincs a nyelvben – ahogy a természetes nyelvekben sem – egyetlen igaz út, a dolgokat többféleképpen meg lehet valósítani, és személy- és helyzetfüggő, hogy melyik út a legjobb (vö. a Python szemléletével, ami kifejezetten azt preferálja, hogy egy dologhoz lehetőleg csak egy út vezessen és az legyen minél nyilvánvalóbb[7]). Ezt a Perl közösség TIMTOWTDI-nak („Tim Toady”) hívja: There is more than one way to do it. A másik elv az „easy things should be easy and hard things should be possible”: a könnyű dolgokat legyen könnyű megcsinálni, de a nehéz dolgokat is meg lehessen csinálni. Fontos gondolat még, hogy a nyelv elsősorban nem arra van optimalizálva, hogy hatékonyan használja ki az egyre olcsóbb hardvert, hanem arra, hogy a dráguló munkaerőt használja ki a lehető leghatékonyabban. Ezt segíti, hogy a különböző dolgok jól elkülönülnek egymástól – a különböző változófajták más-más jellel kezdődnek, a tömbök és az asszociatív tömbök elemeit más karakterekkel érjük el (szögletes ill. kapcsos zárójel), a sztringek és a reguláris kifejezések alapértelmezett karaktere különbözik (sztringet aposztróf vagy idézőjel, regexet perjelek közé zárunk), stb. Szintén a nyelvészeti tanulmányok hatásának tulajdonítható az, hogy a leggyakoribb utasítások lehetőleg rövidek, a legfontosabb paraméter jellemzően legelöl áll és nagy a nyelvi alapkifejezések száma. A Perl előnyben részesíti a tömör és a felhasználó számára természetes szerkezeteket, még annak árán is, ha az implementáció bonyolultabb lesz. Ide kapcsolható még a DWIM szemlélet is („Do what I mean” – tedd azt, amire gondolok), vagyis a legkevesebb meglepetés elve: a nyelv felületes ismeretével is könnyen rá lehet jönni egy ismeretlen kifejezés, szerkezet szándékára. A Perlt áthatja a praktikusság – nem baj, ha nem szép valami, csak tegye a dolgát. Ez persze sok kritikára is okot ad, hiszen emiatt nagyon is jellemző a rendezetlen, trehány program; a programozó nem azért írta, hogy más majd karbantartsa azt, hanem azért, hogy egy feladatot elvégezzen vele. Maga a Perl se túl elegáns: lehet feszegetni a szabályait, a fordító meglehetősen megbocsátó. Emiatt – alapból legalábbis, ha az ember nem használja a A Perl előnyei és hátrányaiElőnyei:
Hátrányai:
Perl humorUgyanúgy, mint a C nyelvben, a Perlben is népszerűek az elborult lelkivilágú programírási versenyek. Ezek győztesei olyan kódokat produkálnak, melyekről órákig tart megállapítani, hogy voltaképpen mit is csinálnak, azonban lefuttatva általában valamilyen egyszerű műveletet hajtanak végre – például kiírják, hogy „Helló világ!” (Hello world!). Népszerű foglalatosság Perlben verset írni, tehát olyan programkódot, ami értelmezhető a perl fordító által, de olvasható angol nyelvű versként is. Ez a hobbi többé-kevésbé egyedi a programnyelvek között, nagyrészt annak köszönhetően, hogy a Perl legtöbb utasítása angol szó. A legújabb verseket rendszeresen közzéteszik a Perl Poetry oldalon. Érdekes még a Perl golf. Ugyanúgy, mint a fizikai golfban, a lényeg itt is a cél elérése minél kevesebb ütéssel, az ütések azonban billentyű leütést jelentenek. Egy feladat lehet például a „leghosszabb anagramma megtalálása a beolvasott szövegben”. A versenyzők egymást túllicitálva írnak minél kevesebb billentyű leütéssel begépelhető programkódokat. Az egyik legbizarrabb szórakozás a Lingua::Romana::Perligata CPAN modul, mely képes arra, hogy latin nyelven íródott szöveget értelmezzen és hajtsa végre azt, módot adva a latin nyelvű Perl programozásra. Megemlítést érdemel továbbá a Perl Linux minimalista disztribúció, amely (ha nem minden, de) sok megszokott Linux parancsot tartalmaz, egytől egyig Perl-ben megírva! (pl. chmod, find, file, ls, touch ...). A rendszer mindössze a Linux kernelt, a uClibc -t (minimális alternatíva glibc helyett), a Perl értelmezőt és a Perl nyelven írott parancsokhoz tartozó programokat tartalmazza. AlapokA Perl szabad szoftver, amely az Artistic licence és a GPL alatt érhető el. A Perl használatára jó példa, hogy a Wikipédia is egy Perlben írt CGI szkriptként működött 2002 januárjáig. (A lecserélésének oka sem a Perl bármilyen káros tulajdonsága volt – egyszerűen azok a programozók, akik újraírták, nem a Perlt ismerték jobban.) Egy másik nagyobb alkalmazóként a Slashdot.org említhető, amelyet a Perlben írt Slashcode működtet. Webes alkalmazások esetében a Perlt gyakran Apache web szerverrel és annak mod perl moduljával használják. A nyelvet támogatói és becsmérlői is egyaránt tisztelik szintaxisa és sajátosságai miatt. A két tábor közötti különbség azonban abban rejlik, hogy ezt erényként vagy vétekként értékelik-e. Tulajdonságai miatt gyakran hasonlítják a természetes nyelvekhez (mint az angol), illetve az evolúcióhoz. Larry Wall így érvel:
Felismerve „csúnya, de hasznos” természetét, a tevét választották a Perl kabalafigurájává, és mivel az O’Reilly kiadó által megjelentetett Perl programozás (Programming Perl) című könyv borítójára is a teve került, ezt programozói körökben egyszerűen csak „teve-könyv”-nek (angolul „camel book”) hívják. ImplementációA Perl egyik bástyája a CPAN, amelyről hatalmas mennyiségű, ingyenesen használható modul tölthető le, melyek az elméleti matematikától az adatbázis kezelésen keresztül a hálózati implementációkig sok-sok mindent felölelnek. A CPAN moduljainak túlnyomó többsége az Artistic licence, a GPL, vagy esetleg mindkettő alatt használható. 2004-ben a CPAN több mint 4000 szerző által írt moduljainak száma meghaladta a 7000-et. A CPAN.pm is egy perl modul, amelynek segítségével további modulokat lehet letölteni és telepíteni a CPAN-ról vagy tüköroldalairól, tetszés szerint interaktívan, vagy akár teljesen automatikusan. A jelenlegi verzióA jelenleg elérhető az 5.12.3-es verzió, melyet 2011. január 21-én adtak ki. Ez a változat is (már az 5.10 óta egyébként elérhető) teljes Unicode támogatást nyújt. A következő generációs Perl6 nyelv fejlesztése folyamatban van, ezt már a több programozási nyelvet is támogató, Parrot-nak elnevezett virtuális gép fogja futtatni. A Perl működéseBár a Perl hordozza az interpretált nyelvek minden előnyét, mégsem szigorúan sorról sorra értelmezi a forráskódot, hanem először egy átmeneti belső formátumra alakítja, amelyet futtatás előtt optimalizál. Ez a működés lehetővé teszi, hogy a szintaktikai hibák már fordításidőben észlelhetők legyenek, a szubrutinok hívásai pedig még a szubrutin definíciója előtt szerepelhetnek a forrásban. Az 5.005-ös verzió óta lehetővé vált az átmeneti bájtkód elmentése későbbi futtatásokhoz, amellyel megspórolható a kezdeti fordítási fázis. Mindenképpen idekívánkozik, hogy a legtöbb linuxos (unixos) gépen a Perl értelmező a #!/usr/bin/perl
ez a Perl-nek egy megjegyzés, viszont segít egyes programokat (főként parancsértelmezőket, mint például bash) abban, hogy rájöjjenek, mivel is lehet futtatni a programot. A Windows rendszerek esetén célszerű a ".pl" fájlokhoz a AdatszerkezetekHárom alapvető adatszerkezet van: skalár, lista (másik nevén tömb) és asszociatív tömb (hash).
$skalar = "Ez egy szoveg"; # skalár változó
$szamskalar = 123.456; # skalár szám értékkel
@tomb1 = (1011,1012,1013,1014,1015,1016,); # egy tömb
@tomb2 = (2000,2100,2200,2300,2040,2045,); # egy tömb
@tomb8 = (8000,8100,8400,8245,); # egy tömb
$i = $tomb1[0]; # a tömb legelső eleme
%asszoc = ('nev1','adat1','nev2','adat2'); # egy asszoc tömb, figyeljük meg, hogy páros számú
elem van felsorolva
%asszoc = ( # az előző deklaráció más (könnyebben áttekinthető)
'nev1' => 'adat1', # stílusban írva
'nev2' => 'adat2'
);
$asszoc{'nev3'} = 'adat3'; # új elem hozzáadása az asszociatív tömbhöz
delete $asszoc{'nev2'}; # elem törlése az asszociatív tömbből
Kezdetben zavaró lehet, hogy egy tömb, asszociatív tömb elemének lekérdezésekor is $-jelet kell tenni a változó neve elé, azonban mindig gondoljunk arra, hogy a $, % és @ jelek használata attól függ, hogy mit is szeretnénk értékként visszakapni. Vezérlő szerkezetekA Perl vezérlő szerkezetei a C és Java nyelvekéire hasonlítanak. Ciklusokcímke while ( kifejezés ) blokk
címke while ( kifejezés ) blokk continue blokk
címke for ( kifejezés1 ; utasítás2 ; utasítás3 ) blokk
címke foreach változó ( lista ) blokk
címke foreach változó ( lista ) blokk continue blokk
ahol a blokk egy vagy több Perl utasítás kapcsos zárójelek között: { utasítások }
A kettősponttal lezárt címkét a ciklusvezérlő utasításokban használhatjuk.
Beágyazott ciklusokban címkével együtt használva az utasításokat, azok a címkének megfelelő cikluson értelmeződnek, lehetőséget adva például egy belső ciklusban egy külső megszakítására.
A A Ráadásképpen bármely egyszerű kifejezés (ami nem képez blokkot) végrehajtható akár a következő formákban is: while ( kifejezés }
until ( kifejezés )
Hasonlóképp készíthető hátultesztelő ciklus, ahol a blokk a kifejezés értékétől függetlenül először biztosan lefut. Ezt a do blokk while ( kifejezés );
do blokk until ( kifejezés );
Vigyázat! Ezeket az egyszerűsített kifejezéseket a Perl nem tekinti teljes értékű ciklusnak, így ezekben nem használhatóak a Feltételes elágazásokif ( kifejezés ) blokk
Amennyiben a kifejezés igaz, úgy végrehajtódnak a blokkban szereplő utasítások. unless ( kifejezés ) blokk1
else blokk2
Amennyiben a kifejezés hamis, úgy végrehajtódnak a blokkban szereplő utasítások. if ( kifejezés ) blokk1
else blokk2
Ha igaz a kifejezés, akkor a blokk1 fut le, ellenkező esetben pedig a blokk2. if ( kifejezés1 ) blokk1
elsif ( kifejezés2 ) blokk2
else blokk3
Ha a kifejezés1 igaz, akkor a blokk1 értelmeződik, ellenkező esetben megvizsgálja a kifejezés2-t, és ennek megfelelően vagy a blokk2 vagy pedig a blokk3 lesz értelmezve. A Perl a kifejezéseket minden esetben igaz-hamis értékekként kezeli. Ha a kifejezés számnak tekinthető, akkor bármely nem nulla érték igazként értékelődik. Ha a kifejezés szöveges érték, akkor bármely nem nulla hosszúságú szöveg igaz, kivéve a "0"-t. "0" hamis "0.0" igaz "00" igaz "-0" igaz -1 igaz Ha listát vagy asszociatív tömböt írunk a kifejezés helyére, akkor annak elemszáma értékelődik ki, tehát az üres lista és asszociatív tömb hamis lesz. Kifejezésmódosító szerkezetekEgyszerű kifejezésekben, értékadásokban a utasítás while ( logikai kifejezés )
utasítás until ( logikai kifejezés )
utasítás if ( logikai kifejezés )
utasítás unless ( logikai kifejezés )
utasítás foreach ( logikai kifejezés )
A kifejezésmódosítók nem ágyazhatók egymásba, így a következő kódrészlet szintaktikailag hibás: utasítás if ( logikai kifejezés ) for ( lista )
A print $a if $a > 5; # az érték csak akkor jelenik meg, ha nagyobb, mint 5
print "$_\n" for 1 .. 10; # 1-től 10-ig kiírja a számokat egymás alá
print "$_: $h{ $_ }\n" foreach sort keys %h; # asszociatív tömb elemeinek kiírása (kulcsok szerint betűrendben)
Többágú feltételes elágazás (switch)A Perl nyelv 5.8-as változatáig alapjában véve nem volt külön szerkezet a C nyelvben megszokott SWITCH: {
if ( logikai kifejezés ) { utasítások; last SWITCH; }
if ( logikai kifejezés ) { utasítások; last SWITCH; }
# ...
egyéb esetben végrehajtandó utasítások;
}
avagy SWITCH:
utasítás1, utasítás2, last SWITCH if ( logikai kifejezés );
utasítás1, utasítás2, last SWITCH if ( logikai kifejezés );
# ...
egyéb esetben végrehajtandó utasítások;
}
vagy if ( logikai kifejezés1 ) {
utasítások;
} elsif( logikai kifejezés2 ) {
utasítások;
} elsif( logikai kifejezés3 ) {
utasítások;
} else {
egyéb esetben végrehajtandó utasítások;
}
Jól példázza azonban a Perl nyelv bővíthetőségét, hogy kiegészítő modul segítségével akár "szabványos" switch szerkezet is használható a Switch CPAN modul használatával use Switch;
switch ($val) {
case 1 { utasítások }
case "a" { utasítások }
case [1..10,42] { utasítások }
case /\w+/ { utasítások }
''...''
else { utasítások }
}
Ezzel azonban bánjunk óvatosan, mivel a Switch modul voltaképp átírja a programkódot az első megoldásra, ezáltal egyes esetekben megnövekedhet a sorok száma. Ekkor egy későbbi hibajelzés olyan sorra mutathat, ahol valójában nem is szerepel a kérdéses hivatkozás. Az 5.10-es változatban már van valódi beépített „switch” is use feature "switch";
given($_) {
when (/^abc/) { $abc = 1; }
when (/^def/) { $def = 1; }
when (/^xyz/) { $xyz = 1; }
default { $nothing = 1; }
}
Bonyolultabb adatszerkezetekHivatkozások segítségével az alaptípusoknál sokkal összetettebb adatszerkezetek is létrehozhatók, például olyan névsor készíthető, amiben egy névhez több adatot is lehet rendelni (születés helye, ideje, lakcím stb.), míg egyszerű (egydimenziós) asszociatív tömbök segítségével csak egy adatot lehet minden kulcshoz hozzárendelni. Skaláris %tomb1 = (
nev1 => 'lakcím1',
nev2 => 'lakcím2',
};
%tomb2 = {
nev1 => {
lakcim => 'lakcím1',
telefonszamok => [ 'telefonszám1', 'telefonszám2' ],
szuletes => {
helye => 'szül.hely1',
ideje => évszám1,
},
},
nev2 => {
lakcim => 'lakcím2',
telefonszamok => [ 'telefonszám3', 'telefonszám4', 'telefonszám5' ],
szuletes => {
helye => 'szül.hely2',
ideje => évszám2,
},
},
};
print $tomb1{nev2}; # lakcím2
print $tomb2->{nev1}->{szuletes}->{helye}; # szül.hely1
print $tomb2->{nev2}->{telefonszamok}->[0]; # telefonszám3
Függvények, szubrutinokA Perlben a függvényeket a sub terfogat {
my $oldalhossz = shift;
return $oldalhossz ** 3;
}
my $oldal = 16;
print terfogat( $oldal );
A paraméterek nevesíthetőek is a függvénynek asszociatív tömböt adva át paraméterként: sub udvozlet {
my %szemely = @_;
return "Szia $szemely{vezeteknev} $szemely{keresztnev}\n";
}
print udvozlet(
vezeteknev => 'Szabo',
keresztnev => 'Janos',
);
Reguláris kifejezésekA Perlben nagyon hatékony módon lehet mintaillesztést végezni szabályos kifejezések (angolul: regular expression) segítségével. A perl szabályos kifejezések eredetileg a Unix Version 8 szintaxisát követték, de azóta a perl más irányba fejlődött tovább, s mára fogalommá vált a perl-kompatibilis szabályos kifejezés. Az $x =~ m/abc/
Az abc string helyén állhat összetettebb szabályos kifejezés is, például a $x =~ m/a.a/
Ha a kifejezést $x =~ m/Nemecsek/i
Az $tej =~ s/ló/tehén/;
A g (global) kapcsolóval a csere globálissá tehető. Az alábbi programsor lecseréli a megszorítás szó összes előfordulását reformra a $cikk =~ s/megszorítás/reform/g;
Egyszerű példaprogramokA legegyszerűbb „Helló világ!” program a következőképp fest Perlben: #!/usr/bin/perl -w
print "Helló világ!\n";
Jegyzetek
További információk
Kapcsolódó szócikkek |
Portal di Ensiklopedia Dunia