Įvadas į Perl: trečioji dalis: operatoriai ir I/O

Operatoriai ir funkcijos

Perlas turi daug standartinių funkcijų. kai kurias jau matėme šiame
įvade (tokias kaip print,

sort arba reverse). Pilnas funkcijų sąrašas yra
perlfunc dokumentacijoje ir apie

kurią nors funkciją lengva pasiskaityti konsolėje įvedus perldoc -f

funkcijospavadinimas.

Perlo operatoriai pilnai aprašyti perlop dokumentacijoje. Štai
keletas dažniau sutinkamų:

Aritmetiniai:

+   sudėtis
-   atimtis
*   daugyba
/   dalyba

Matematinio palyginimo:

==   lygybės
!=   nelygybės
<    mažiau negu
>    daugiau negu
<=   mažiau arba lygu
>=   daugiau arba lygu

Simbolių eilučių palyginimo:

eq   lygybės
ne   nelygybės
lt   mažiau nei
gt   daugiau nei
le   mažiau arba lygu
ge   daugiau arba lygu

Kodėl reikia skirtingų palyginimo operatorių simbolių eilutėms ir
matematinėms išraiškoms? Kadangi perlas

netipizuoja kintamųjų pagal tai ar tai skaičius, ar simbolių eilutė, jam
reikia nurodyti ar rikiuoti

matematiškai (kur 99 yra mažiau nei 100) ar alfabetiškai (kur 100 eina
prieš 99)

Loginiai operatoriai:

&&   ir
||   ar
!    ne

&&, || bei ! galima užrašyti ir
and, or,

not. Taip jie labiau įskaitomi, tačiau keičiasi pirmumo eilė.
Plačiau apie skirtumus tarp

and ir && galima rasti perlop
dokumentacijoje.

Kiti operatoriai:

=     priskyrimas
.     simbolių eilučių sujungimas
x     simbolių eilučių daugyba
..    intervalo operatorius (sukuria skaičių sąrašą)

Dauguma operatorių gali būti derinami su = šitokiu būdu:

$a += 1;    # tas pats kaip $a = $a + 1;
$a -= 1;    # tas pats kaip $a = $a - 1;
$a .= "\n"; # tas pats kaip $a = $a . "\n";

Bylos ir įvestis/išvestis

Įvesčiai ar išvesčiai bylą galima atidaryti su funkcija
open(). Pilnai su visomis detalėmis ji

aprašyta perlfunc bei perlopentut dokumentacijoje, tačiau
trumpai:

open(INFILE,  "infile.txt")    or die "Negaliu atidaryt input.txt: $!";
open(OUTFILE, ">outfile.txt")  or die "Negaliu atidaryt outfile.txt: $!";
open(LOGFILE, ">>logfile.txt") or die "Negaliu atidaryt 
logfile.txt: $!";

Skaityti iš bylos galima naudojantis <> operatorių.
Skaliariniame kontekste jis nuskaito

vieną eilutę iš bylos, o sąrašo kontekste grąžina iš bylos eilučių
sudarytą masyvą:

my $eilute = <INFILE>;
my @eilutes = <INFILE>;

Visos bylos nuskaitymas iš karto vadinamas „šliurpimu“
(slurping). Tai gali būti

naudinga, bet kartu gali ir pareikalauti daug atminties resursų. Daugumą
dalykų galima padaryti tekstą

apdorojant po eilutę ir naudojantis Perlo ciklais.

Operatorius <> dažniausiai naudojamas tokiame
whilecikle:

while (<INFILE>) { # priskiria kiekvieną bylos eilutę $_
    print "Ką tik perskaičiau eilutę: $_";
}

Mes jau matėme kaip spausdinti tekstą naudojantis print().
Tačiau print() galima

nurodyti pirmu argumentu į kurią bylą spausdinti:

print STDERR "Paskutinis perspėjimas\n";
print OUTFILE $irasas;
print LOGFILE $ivykis;

Kai baigiate dirbti su bylomis, jas reiktų uždaryti su funkcija
close() (nors tiesą sakant,

Perlas sutvarkys viską ką pridarėte, net jei ir pamiršote uždaryti bylą)

close INFILE;

6 Comments

  1. Tikiuosi cia ne paskutine dalis…;]

    Nes labai pravercia tokie manualai.

    Malonu kad dar yra zmoniu kurie stengiasi ir del kitu :)

  2. idomu kas nors kopina visa shita dalyka ir saugo i koki doc, html ar pdf? :)

  3. Nu aš turiu vienoj byloj HTML viską. Liko turbūt dar viena dalis, kai viskas bus baigta, bus galima ir vienoj byloj atskirai skaityt ;)

  4. moxliau – o tu negalvojai prie savo "pamokų" pridėti ir keletą pratimėlių ???

  5. EnC:

    Šiaip čia ne pamokos. Čia versti manualo gabalai ;) (Būtent perlintro skyrius)

Comments are closed.