Práca so súbormi

Porovnanie :: PHP | Python

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

Porovnávacie príklady

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

Porovnávacie príklady

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