![]() Kas naudoja Perl? Taip pat skaitykite Perl pamokos: CGI.pm biblioteka: sausainiai Kadangi Perl turi funkcijas, leidžiančias lengvai manipuliuoti su procesais ir failais, o taip pat yra
pernešamas (portable, t.y. gali veikti daugelyje skirtingų platformų), jis yra ypač populiarus tarp sistemų
administratorių, prižiūrinčių po kelias skirtingo tipo sistemas. O interneto plėtra leido Perl tapti populiaria
Perl kalbą lengviau išmokti, jei esate susipažinęs su programavimu Unix apvalkalo (shell) aplinkoje arba iš C išvestomis kalbomis (pvz., Java). Sunkiau neturintiems programavimo patirties, tačiau išmokus Perl nebus priežasties mokytis ką nors kita. Oficiali Perl svetainė yra www.perl.com, iš kur galite atsisiųsti reikiamas priemones ir instaliuoti.
Puikus pasirinkimas yra ActivePerl. Gausų dokumentacijos kiekį rasite
www.perl.org/learn.html O dabar pradėkime mokytis! Pirmiausia, kaip sužinoti, kokia Perl versija naudojama? Tam vydykite komandą Pirmoji programa, aišku, bus Labas, pasauli! programa: print "Labas, pasauli!\n"; Ją galite surinkti tiesiog įvykdę perl komandą (naudokite ^Z programos pabaigos pažymėjimui, arba
užrašykite ją į tekstinį failą (pvz., labas.pl) ir jį vykdykite: Programa pateiks atsakymą: Trečias būdas - įvykdyti programą ją nurodžius su -e raktu, pvz., Perl yra laisvos struktūros kalba (t.y., sakiniai gali prasidėti bet kur, o kalbos elementus skirti bet koks kiekis tarpų), kurioje sakinius skiria kabliataškis (;), - tiesa, tarpai ir perėjimai į naujas eilutes išsaugojami, kai yra tarp eilučių. Komentarai prasideda grotelėmis (#). Kalboje yra trijų tipų kintamieji: skalariniai (vienos reikšmės), masyvai ir indeksai (hash). Joje nėra loginio (boolean tipo, tačiau reikšmių palyginimai elgiasi taip, tarsi jis būtų. Perl kalboje kintamųjų nereikia aprašinėti iš anksto jų aprašas yra pirmas panaudojimas. Kintamojo vardas prasideda dolerio ženklu ($, sigil), po kurio seka lotyniškų raidžių, skaitmenų ir pabraukimų seka. Didžiosios ir mažosios raidės laikomos skirtingomis. Pvz., $vardas = "Jonas"; $kiek = 20; $daiktas = " eurų.\n"; print $vardas, " turi ", $kiek, $daiktas; duos atsakymą: Perl programa paprastai prasideda #!, po kurių seka kelias iki Perl interpretatoriaus (pvz.
#!/usr/bin/perl arba #!/usr/bin/env perl) - tai vadinamoji shebang eilutė. Ji nurodo, kurį
Perl interpretatorių naudoti (ypač svarbu, kai jų yra keli). Tada, jei programos failui yra priskirtas vykdymo
atributas (pvz., Unix sistemoje su komanda chmod +x pvz.pl), programą galima įvykdyti tiesiog
nurodant jos vardą, pvz., Teksto eilutės yra simbolių seka tarp kabučių (") arba apostrofų ('). Skaičiai gali būti sveiki (pvz., 54321) arba slankiu kableliu (pvz., 56.99 arba .25). Taip pat galima skaičius nurodyti su skirtingais skaičiavimo pagrindais: dvejetainiu (pvz., 0b1001), aštuontainiu (pvz., 0777), šešioliktainiu (pvz., 0x1f), o taip pat moksline notacija (pvz., .7E-8). Pvz., #!/usr/bin/perl # paleidimo (shebang) eilutė Tai pateiks rezultatą: Yra 2 žmonių tipai: a) kurie supranta dvejetainius skaičius ir b) kurie jų nesupranta. Ketvirtis yra 0.25, o prekė kainuoja tris ketvirčius. 0.00000000123 - labai mažas skaičius. Masyvo pavyzdys ir indekso pavyzdys: #!/usr/bin/perl @spalvos = ("balta", "juoda", "raudona"); $balta = $spalvos[0]; Gausim rezultatą: Kontekstas Perl kalboje yra funkcijų, kurios veikia priklausomai nuo jų panaudojimo, kuris vadinamas kontekstu. Tarkim, gali būti skaitinis ar teksto eilučių kontekstas, priklausomai nuo naudojamo operatoriaus. Taip, jei naudojamas "+", Perl tikisi skaitinių reikšmių, kai yra 12+7, tad jei nurodysime tekstų eilutes iš skaitmenų (pvz., "55"+"44"), bus atlikta sudėtis (ir rezultatas bus 99). Tad pabandžius atlikti veiksmą "5lygios"+"dalys", pirmas operandas turi pradedantį skaitmenį ir jo reikšmė bus "5", o antrasis neturi skaitmenų, todėl jis prilyginamas "0", - ir bus atliktas veiksmas 5+0 gaunant 5. Tuo tarpu eilučių sujungimui skirtas operatorius "." (taškas), tad jis "55"."44" duos rezultatą "5544". Funkcijų panaudojimas Standartinės Perl funkcijos prasideda mažąja raide. Anksčiau jau naudojome print komandą. Štai kvadratinės
šaknies funkcijos panaudojimas: Realus pavyzdys: Ilgų eilučių laužymas Kartais tekstiniame faile eilutės yra labai ilgos, pvz., visa pastraipa yra išsaugota kaip viena eilutė. Tokį tekstą sunkiau skaityti, tad natūralus noras jo eilutes matyti trumpesnėmis. Nors yra tam skirtų priemonių, tačiau ne visada tinkama programa yra po ranka, o kartais jos yra komercinės ir nepigios, tad paprastam ir greitam sprendimui Perl kalboje buvo sukurta linebreak.pl programa, kuri nuskaito pradinį tekstą ir visas jo eilutes suskaido į trumpesnes pagal nurodytus parametrus. Čia pristatoma supaprastinta tos programos versija (vadinamoji demo). Pilną naujausią (production) versiją galite pasiimti iš Lietuviškos programos VELTUI skilties - paketą lb_perl.zip Ši programa priima failo, kurio eilutes norima suskaidyti, vardą, o taip pat galima nurodyti du (būtinus) parametrus - minimalų paliekamos eilutės ilgį ir maksimalų paliekamos eilutės ilgį. Programa, pasiekusi minimalų nurodytą ilgį bando rasti esamo žodžio pabaigą ir skelia ties jo pabaiga, jei tik neišeina už maksimalaus eilutės ilgio (šiuo atveju skelia ties ta pozicija). Programoje panaudojama funkcija splitline - parametrais paimamti vieną teksto eilutę ir minimalų bei maksimalų eilutės ilgį ir tą eilutę sulaužanti į trumpesnes eilutes pagal nurodytus parametrus. Pati programa sudaryta tik iš failo nuskaitymo ir šios funkcijos kvietimo cikle kiekvienai teksto eilutei. Tad žemiau pateiktą kodą įrašę į linebreak.pl failą, programą galima vykdyti, pvz., taip: #!/usr/bin/perl if ($#ARGV != 2) { print "To break long lines in text (v.1.0 demo, 2024).\n\nFormat: linebreak file_name start_position max_length\n"; exit 1; } $DATFILE = $ARGV[0]; $START_POS = $ARGV[1]; $MAX_LENGTH = $ARGV[2]; open (IN, "<$DATFILE") or die "$ERROR_PREFIX can't open $DATFILE: $!"; @lines = Pastaba: Pilnas (ir lankstesnis su daugiau parametrų) šios linebreak.pl variantas (su licencija, aprašais (LT ir EN) bei
pilnu programos kodu) yra Lietuviškos programos VELTUI skiltyje -
kaip lb_awk.zip paketas. Pastaba: Vėliau šis įvadas į Perl kalbą bus praplėstas... Ankstesnės "Advanced HTML" skyrelio temos: | |