Perl kalbos pagrindai

Pagridinė informacija

Iššifravimas
Practical Extraction and Report Language (Praktinė [informacijos] išgavimo ir raportų kalba)
Patalogically Eclectic Rubish Lister.
Autorius
Larry Wall
Dabartinė versija
5.6
Kuriama versija nr.6
eksperimentinė versija - 5.7
Aplinkos, kuriose dirba
patys įvairiausi UNIX sistemų variantai (rašyta būtent šioms sistemoms)
yra versijos Microsoft Windows (win32) platformoms
platinimas
laisvas (GPL)
Paskirtis
Bendros paskirties kalba, daugiau orientuota į darbą su tekstu.
paveldėtos sąvybės iš kitų kalbų
C
awk
shell
pascal
programų vykdymo būdas
interpretavimas
kompiliatorius kuriamas
pritaikymas
www programavimui
unix sistemų administravimui
integravimui į įvairias sistemas, kuriose reikalinga galimybė naudoti skriptus informacijai apdoroti

Informacijos šaltiniai

Pirmoji programa

#!perl
print "Pagarba studijuojantiems perl kalbą!\n";

perl -e 'print "Pagarba studijuojantiems perl kalbą!\n";'

perl failo_su_programa_vardas

Literalai

sveikas skaičius ($pazimys = 10;)
realus skaičius ($pi = 3.14;)
mokslinė notacija ($milijardas = 1e9;)
eilutė ($it = 'dėstytuvas';)
interpretuojama eilutė ($warnig = "Dėmesio! $it !\n";)
komanda ($cwd = `pwd`;)
argumentas per kelias eilutes prasideda dviem mažiau ženklais, už kurių iš karto eina vardas.
eilutės einančios po šio sakinio iki eilutės su vardu prasidedančiu pirmoje pozicijoje yra interpretuojamos, kaip argumentas;
vardo paėmimas į kabutes nurodo, kaip interpretuoti šią informaciją -
nėra kabučių, arba dvigubos
interpretuojama eilutė;
'
naudojama be pakeitimų;
`
interpretuojama, kaip komandos, kurias reikia įvykdyti ir vykdymo rezultatą naudoti kaip reikšmę
vienoje išraiškoje gali būti keletas daugiaeilutinių argumentų.
Pavyzdys:
print <<SAR , <<`COMANDOS`;
TEISES  SAVININKAS  DYDIS   PAVADINIMAS
SAR
ls -l .
echo "Viskas!"
COMMANDOS

Kintamieji

Kintamieji perl kalboje parasideda "įdomiomis" raidėmis. Raidė nusako kintamajame saugomos reikšmės tipą:
Didžiosios ir mažosios raidės varduose skiriasi!
Priklausomai nuo konteksto skaitinės reikšmės keičiamos simbolių eilutėmis ir atvirkščiai.
Neinicializuotiems kintamiesiems prieš vartojimą suteikiama reikšmė 0 arba '' priklausomai nuo konteksto
$_ - paskutinės skaliarinės operacijos rezultatas
@_ - paskutinės masyvinės operacijos rezultatas
Jei interpretuojamoje eilutėje po kintamojo iš karto eina tekstas, tai kuri dalis yra kintamasis galima nurodyti riestiniais skliaustais: $a = "${sveik}uolis";

Masyvai

$#masyvas - masyvo @masyvas paskutinio elemento indeksas; keičiant šią reikšmę galima sutrumpinti/prailginti masyvą
Indeksai skaičiuojami nuo 0 (jei per specialųjį kintamąji $[ nenustatyta kitaip)
Priskyrimas:
@mas = ( 'perl', 'kalba', 'ir', 'CGI', 'programavimas');
skliaustai reikalingi, nes kablelis (,) turi didesnį prioritetą uz priskyrimą (=)
Nario paėmimas
$x=$mas[1];
paimamamas anrtas elementas is masyvo @mas, o ne kintamasis $mas
Kelių narių paėmimas:
@x = @mas[1, 2, 5];
@y = @mas[1 .. 4];
Masyvo sumažinimas
$#mas = -1;
Masyvas papildomas automatiškai priskiriant reikšmę elementui už masyvo pabaigos
Masyvą taip pat galima prailginti ir keičiant $#mas reikšmę
Funkcija splice(@masyvas, pirmas_narys, kiekis, sarašas)
pakeičia masyvo @masyvas kiekis narių pradedant pirmas_narys reikšmėmis, duotomis saraše.
Funkcija pop(@masyvas)
iš masyvo @masyvas išmeta paskutinį narį ir grąžina jį kaip rezultatą
Funkcija shift(@masyvas)
iš masyvo @masyvas išmeta pirmąjį narį ir grąžina jį kaip rezultatą.
Funkcija push(@masyvas, reikšmė)
prie masyvo galo prijungia reikšmę
Funkcija unshift(@masyvas, reikšmė)
masyvo pradžioje įterpia reikšmę

Asociatyvieji masyvai

Priskyrimas:
%asoc = ('vienas', 1, 'du', 2, 'daug', 3);
%asoc = ('vienas'=> 1, 'du'=> 2, 'daug'=> 3);
Nario paėmimas:
$x = $asoc{'daug'};
Raktų paėmimas:
@keys = keys(%asoc);;
Reikšmių paėmimas:
@values = values(%asoc);;
Elemento sunaikinimas:
delete(%asoc{'kazkuris'};
  • Operatoriai

    visi, kuriuos galima surasti C kalboje. Semantika tokia pati, išskyrus
    dalybos operatorius / perl kalboje visada duoda slankaus kablelio skaičių. Norint paversti sveiku - naudoti funciją int.
    ** - kėlimo laipsniu operatorius
    . - eilučių sujungimo operatorius
    .= - eilutės prijungimo operatorius
    x - pakartojimo operatorius ("123"x3 bus lygu "123123123")
    /šablonas/ - paieškos pagal šabloną operatorius
    s/p/r/ - pakeitimo operatorius
    tr/a-z/A-Z/ - simbolių pakeitimo (transiliacijos) operatorius
    =~ - argumento nurodymo operatorius (naudojamas su 3 aukščiau pateiktais operatoriais)
    -r - failų parametrų patikrinimo operatoriai. "r" vietoje gali būti ir kitokios raidės. Plačiau apie juos - kalbant apie failus.

    palyginimo operatoriai

    tarp skaičių == != > >= < <= <=>
    tarp eilučių eq ne gt ge lt le cmp
    <=> ir cmp operatoriai gražina -1, 0 arba 1, priklausomai, koks santykis yra tarp lyginamų reikšmių.

    Derinimo priemonės

    derinimo priemonės tampa prieinamos, kai programa kviečiama vykdymui su parametru -d.
    pagrindinės derintuvo komandos:
    • q arba ^D - išeiti iš derintuvo
    • h - pagalba
    • T - sTekas
    • s - vienas žingsnis (įeinant į funkcijas)
    • n - vienas žingsnis (neįeinant į funkcijas)
    • r - grįžimas iš einamosios funkcijos
    • <CR> - paskutinės s arba n komandos kartojimas
    • c [eilutė] - programos vykdymo tęsimas [iki nurodytos eilutės]
    • l - parodyti programos teksta [nuo einamosios eilutės]
    • w - parodyti programos teksta apie einamą eilutę
    • /šablonas/ - paieška programos tekste pirmyn
    • ?šablonas? - paieška programos tekste atgal
    • b eilutė|funkcija [sąlyga] - nustatyti pertraukimo tašką
    • d eilutė - pašalinti pertraukimo tašką
    • D - pašalinti visus pertraukimo taškus
    • ![numeris] - kartoti derintuvo komanda
    • H[kiekis] - parodyti derintuvo komandas
    • p išraiška - spausdinti išraiškos reikšmę
    • komanda - įvykdyti perl'o komandą