Práca so súbormi
So súbormi sa v jazyku Perl pracuje pomocou tzv. filehandles. Filehandle - logické meno súboru je reťazec napísaný veľkými písmenami napr. SUBOR.
Príklad:
$file = '/etc/passwd'; # meno súboru je uložené do premennej
open(INFO, $file); # otvorenie daného súboru
@lines = <INFO>; # načítanie obsahu súboru do poľa
close(INFO); # uzavretie súboru
print @lines; # výpis poľa(obsah súboru) na obrazovku
Funkcia open otvára súbor ako vstupný (tj. na čítanie). Prvý parameter je filehandle, logické memo súboru. Druhý parameter je meno súboru vrátane cesty. V predchádzajúcom príklade je meno súboru s cestou uložené v premennej $file. Funkcia close ukončí prácu so súborom.
Niektoré logické mena súborov sú preddefinované a je možné ich v programe použiť.
<STDIN> |
štandardný vstup |
<STDOUT> |
štandardný výstup |
<STDERR> |
štandardný chybový výstup |
<ARGV> |
súbory uvedené v príkazovom riadku |
Príklad:
perl program.pl arg1.dat arg2.dat <input1.dat >output.dat
# <STDIN> reprezentuje obsah súboru input1.dat
# <STDOUT> reprezentuje výstup do súboru output.dat
# <STDERR> je chybový výstup na obrazovku
# <ARGV> číta zo súboru arg1.dat, akonáhle prečíta posledný záznam pokračuje čítaním súboru arg2.dat
Funkcia open môže otvárať súbor aj ako výstupný (tj. pre zápis).
Výstupný súbor sa otvorí pridaním znaku > pred meno súboru. Pomocou znaku > sa vytvorí nový súbor. V prípade, že súbor s takýmto menom už existuje, tak sa existujúci súbor prepíše. Ak chceme otvoriť existujúci súbor a rozšíriť ho, tak pridáme znaky >> pred meno súboru.
Príklad:
open(INFO, $file); # otvorenie súboru pre vstup
open(INFO, ">$file"); # otvorenie súboru pre výstup
open(INFO, ">>$file"); # otvorenie súboru pre rozšírenie
open(INFO, "<$file");# otvorenie súboru pre vstup
Ak chceme zapísať niečo do súboru, musíme otvoriť súbor pre výstup a príkaz print použijeme s parametrom filehandle.
Príklad:
print INFO "Riadok zapísaný do súboru.\n"; # zápis reťazca do súboru INFO
Na otvorenie štandardného vstupu (zvyčajne z klávesnice) a štandardného výstupu (obrazovka) je možné použiť nasledujúce príkazy:
open(SUB, '-'); # otvorenie štandardného vstupu
open(SUB, '>-'); # otvorenie štandardného výstupu

