Niektoré užitočné metódy FileHandle
Niektoré bežne používané metódy modulu FileHandle sú nasledovné:
Metóda | Účel |
povedať | Používa sa na počítanie veľkosti súboru v bajtoch. |
getc | Používa sa na čítanie každého znaku obsahu súboru. |
hľadať | Používa sa na presunutie ukazovateľa súboru na konkrétnu pozíciu. |
eof | Označuje koniec súboru. |
Zavrieť | Používa sa na zatvorenie predtým definovaného obslužného programu súboru. |
Príklady Perl FileHandle
Rôzne použitia modulu FileHandle sú uvedené v tejto časti tutoriálu na viacerých príkladoch.
Príklad 1: Vytvorte nový súbor
Vytvorte súbor Perl pomocou nasledujúceho skriptu, ktorý vytvorí nový súbor pomocou modulu FileHandle. Názov súboru sa prevezme od používateľa a skontroluje sa, či existuje alebo nie. Ak súbor neexistuje, súbor sa otvorí na zápis vytvorením objektu triedy „FileHandle“ po čakaní 1 sekundy.
#!/usr/bin/perl
používať prísne ;
použitie upozornenia ;
použite 5.34.0 ;
použite FileHandle ;
#Zoberte názov súboru od používateľa, ktorý chcete vytvoriť
vytlačiť 'Zadajte názov súboru:' ;
môj $f = <>;
žumpa ( $f ) ;
#Skontrolujte, či súbor už existuje alebo nie
ak ( -e $f )
{
# Vytlačte správu, ak súbor existuje
povedať 'Súbor už existuje.' ;
}
inak
{
#Vytvorte objekt obsluhy súboru
môj $FileHandler = FileHandle- > Nový ;
povedať 'Zápis do súboru...' ;
#Počkajte 1 sekundu
spať ( 1 ) ;
#Otvorte súbor na zápis
ak ( $FileHandler- > OTVORENÉ ( '> $f' ) )
{
#Napíšte do súboru riadok textu
vytlačiť $FileHandler „Je to skúšobná správa. \n Je to druhý riadok. \n ' ;
#Zatvorte obslužný program súboru
$FileHandler- > Zavrieť ;
}
}
Výkon:
Podľa výstupu súbor „test.txt“ predtým neexistoval a tento súbor je vytvorený s dvoma riadkami textu. Potom sa vykoná príkaz „cat“, aby sa skontrolovalo, či bol súbor úspešne vytvorený s obsahom alebo nie:
Skript sa znova spustí s rovnakou vstupnou hodnotou a tu sa vytlačí hlásenie „Súbor už existuje“, pretože súbor „test.txt“ bol vytvorený predtým.
Príklad 2: Prečítajte si obsah súboru
Vytvorte súbor Perl pomocou nasledujúceho skriptu, ktorý načíta obsah súboru pomocou triedy „FileHandle“, ak súbor existuje. Názov súboru je prevzatý od používateľa.
#!/usr/bin/perlpoužívať prísne ;
použitie upozornenia ;
použite 5.34.0 ;
použite FileHandle ;
#Zoberte názov súboru od používateľa, ktorý chcete vytvoriť
môj $f = <>;
môj $f = ;
žumpa ( $f ) ;
#Skontrolujte, či súbor už existuje alebo nie
ak ( -e $f )
{
#Otvorte súbor na čítanie
môj $FileHandler = FileHandle- > Nový ( '< $f' ) ;
# Vytlačte obsah súboru
vytlačiť < $FileHandler >;
#Zatvorte obslužný program súboru
zatvorte $FileHandler ;
}
Výkon:
Obsah súboru „test.txt“ sa vytlačí vo výstupe, pretože existuje v aktuálnom umiestnení:
Príklad 3: Pridanie obsahu do súboru
Vytvorte súbor Perl pomocou nasledujúceho skriptu, ktorý pripojí obsah do neprázdneho súboru a vytlačí veľkosť súboru v bajtoch. Názov súboru je prevzatý od používateľa. Ak súbor existuje a obsahuje údaje, na koniec súboru sa pridá riadok textu. V opačnom prípade sa vytlačí správa.
#!/usr/bin/perlpoužívať prísne ;
použitie upozornenia ;
použite 5.34.0 ;
použite FileHandle ;
#Zoberte názov súboru od používateľa, ktorý chcete vytvoriť
vytlačiť 'Zadajte názov súboru:' ;
môj $f = <>;
žumpa ( $f ) ;
#Skontrolujte, či súbor už existuje a či nie je prázdny
ak ( -s $f )
{
môj $FileHandler = FileHandle- > Nový ( ' >> $f' ) ;
# Vytlačte veľkosť súboru
vytlačiť 'Veľkosť súboru je' . $FileHandler- > povedať. 'bajtov. \n ' ;
povedať 'Pripájanie obsahu do súboru...' ;
#Počkajte 1 sekundu
spať ( 1 ) ;
#Napíšte obsah na koniec súboru
vytlačiť $FileHandler „Je to nová línia. \n ' ;
#Zatvorte obslužný program súboru
$FileHandler- > Zavrieť ;
}
inak
{
povedať 'Súbor neexistuje.' ;
}
Výkon:
Podľa výstupu sa do súboru „test.txt“ pripojí nový riadok a veľkosť súboru je 45 bajtov. Potom sa vykoná príkaz „cat“, aby sa skontrolovalo, či je obsah do súboru pridaný správne alebo nie:
Záver
Modul FileHandle je jednou z možností Perlu na čítanie, zápis alebo pripojenie súborov. V tomto návode sú na jednoduchých príkladoch znázornené tri rôzne použitia tohto modulu.