Rukovanje ulazima/izlazima
Perl omogućuje osnovne ulazne/izlazne operacije koje obuhvaćaju prihvat podataka sa standardnog ulaza (tipkovnica), proslijeđivanje podataka na standardni izlaz (monitor), te pisanje i čitanje datoteka.
Standardni ulazi/izlazi
Standardni U/I su STDIN, STDOUT i STDERR. Pristup standardnom ulazu STDIN izvodi se preko <> operatora (eng. diamond operator). U skalarnom obliku, operator vraća jednu liniju s ulaza, dok u kontekstu polja operator vraća cijelu datoteku s time da svaki element polja predstavlja jednu liniju. Na primjer:
$a = ; # vraća liniju
@a = ; # vraća datoteku
Standardni izlaz STDOUT u najčešćem broju slučajeva nije potrebno posebno pozivati. Na primjer, operator print uvijek radi sa STDOUT proslijeđujući mu tekst koji mora ispisati.
Standardni izlaz za prijavljivanje pogreški STDERR je obično preusmjeren na monitor (STDOUT).
Rad sa datotekama
Datotekama se pristupa putem posebnih pokazivača (eng. filehandles). Pokazivači su zapravo spona između datoteke i Perl procesa. Ti pokazivači se moraju povezati s datotekom koju će oni predstavljati u programu. Tome služi operator open(). Na primjer, pokazivač INPUT je povezan s datotekom index.html na slijedeći način:
open (INDEX, "index.html");
U primjeru je datoteka otvorena samo za čitanje. Ukoliko se u nju želi pisati to se radi na slijedeći način:
open (INDEX, ">index.html");
U ovom slučaju će se prebrisati stari sadržaj datoteke. Ukoliko se želi sadržaj datoteke nadopunjavati (eng. update), tj. dodavati podatke na njen kraj, potrebno je datoteku otvoriti na slijedeći način:
open (INDEX, ">>index.html");
Operator open() vraća vrijednost TRUE/FALSE s obzirom na to da li je operacija uspješno izvršena (TRUE za uspješno izvedenu operaciju). Provjera uspješno izvedene operacije open() može se ispitati na slijedeći način:
open (INDEX, ">index.html") || die "Poruka za SDTERR";
Funkcija die() proslijeđuje tekst unutar zagrada na STDERR i gasi Perl proces. U ovom primjeru ona će se izvoditi ukoliko je lijevi dio operatora || jednak FALSE (neuspješno otvorena datoteka).
Zatvaranje datoteke nije nužno izvršiti jer se obavlja automatski prilikom završenja Perl procesa. No, ukoliko ga je potrebno učiniti prije, za to služi operator close(). Ako u gornjem primjeru želimo zatvoriti datoteku index.html s pokazivačem INDEX, učiniti ćemo to ovako: close(INDEX);
Čitanje datotete je isto kao i kod SDTIN. Operatorom <> pristupamo datoteci u skalarnom kontekstu ili u kontekstu polja.
$a = ; # vraća liniju
@a = ; # vraća cijelu datoteku
Pisanje u datoteku izvodi se operatorom print, samo što se mora prije definirati izlaz na koji se tekst proslijeđuje. Na primjer:
print INDEX "neki tekst $odlomak \n";
Ispitavanje statusa i atributa datoteka je u mnogo slučajeva korisno i poželjno. Time se mogu na vrijeme utvrditi nepravilnosti koje bi mogle nastati u programu.
Ispitivanje datoteka izvodi se operatorom - iza kojeg slijedi oznaka atributa koji se ospituje. Neki od ispitnih operatora su:
-r # readable
-w # datoteka za pisanje?
-x # izvršna datoteka?
-e # datoteka postoji?
-z # prazna datoteka?
-d # direktorij?
-l # simbolički link?
-T # tekstualna datoteka?
-B # binarna datoteka?
Svaki od operatora vraća TRUE/FALSE vrijednost. Primjer:
if (-e INDEX) {
print "Datoteka postoji!";
} else {
die("Datoteka ne postoji!");
}
U primjeru se ispituje postojanje datoteke. Ukoliko ona ne postoji, uvjetni izraz vratiti će vrijednost FALSE čime će se pokrenuti die() operator koji će ugasiti Perl program.
|