Modulul FileHandle în Perl

Modulul Filehandle In Perl



Există mai multe moduri în Perl pentru crearea și accesarea fișierelor. Un fișier poate fi deschis pentru citire, scriere sau actualizare în Perl folosind un handler de fișiere. Managerul de fișiere poate fi utilizat în metoda open() într-un format de programare structurată sau în format de programare orientată pe obiecte. Modulul FileHandle poate fi folosit în Perl pentru a declara handler-ul de fișier ca obiect și pentru a utiliza acest obiect pentru a deschide un fișier pentru creare sau accesare folosind diferite proprietăți și metode ale clasei „FileHandle”. Utilizările unor metode comune ale modulului FileHandle și metodele de utilizare a modulului FileHandle pentru a lucra cu fișierul în Perl sunt prezentate în acest tutorial.

Câteva metode utile de FileHandle

Câteva metode frecvent utilizate ale modulului FileHandle sunt următoarele:

Metodă Scop
spune Este folosit pentru a număra dimensiunea fișierului în octeți.
getc Este folosit pentru a citi fiecare caracter al conținutului fișierului.
căuta Este folosit pentru a muta indicatorul fișierului într-o anumită poziție.
eof Indică sfârșitul fișierului.
închide Este folosit pentru a închide gestionarea fișierelor definită anterior.

Exemple de Perl FileHandle

Diferite utilizări ale modulului FileHandle sunt prezentate în această parte a tutorialului folosind mai multe exemple.







Exemplul 1: Creați un fișier nou

Creați un fișier Perl cu următorul script care creează un fișier nou folosind modulul FileHandle. Un nume de fișier este luat de la utilizator și se verifică dacă există sau nu. Dacă fișierul nu există, fișierul este deschis pentru scriere prin crearea unui obiect din clasa „FileHandle” după așteptarea 1 secundă.



#!/usr/bin/perl

folosiți strict ;
utilizare Avertizări ;
utilizați 5.34.0 ;
utilizați FileHandle ;

#Preluați numele fișierului de la utilizator pentru a crea
imprimare „Introduceți numele fișierului:” ;
$f-ul meu = <>;
chomp ( $f ) ;

#Verificați dacă fișierul există deja sau nu
dacă ( -e $f )
{
#Tipărește un mesaj dacă fișierul există
Spune 'Fisierul există deja.' ;
}

altfel

{
#Creați obiectul de gestionare a fișierelor
meu $FileHandler = FileHandle- > nou ;
Spune „Scriind în dosar...” ;
#Așteptați 1 secundă
dormi ( 1 ) ;

#Deschideți fișierul pentru scriere
dacă ( $FileHandler- > deschis ( „> $f” ) )
{
#Scrieți o linie de text în fișier
imprimare $FileHandler „Este un mesaj de testare. \n Este a doua linie. \n ' ;
#Închideți handlerul de fișiere
$FileHandler- > închide ;
}

}

Ieșire:



Conform rezultatelor, fișierul „test.txt” nu a existat înainte și acest fișier este creat cu două linii de text. Apoi, comanda „cat” este executată pentru a verifica dacă fișierul este creat cu succes cu conținutul sau nu:





  p1-1

Scriptul este executat din nou cu aceeași valoare de intrare și mesajul „Fișier există deja” este tipărit aici deoarece fișierul „test.txt” este creat înainte.



  p1-2

Exemplul 2: Citiți conținutul fișierului

Creați un fișier Perl cu următorul script care citește conținutul unui fișier folosind clasa „FileHandle” dacă fișierul există. Numele fișierului este preluat de la utilizator.

#!/usr/bin/perl

folosiți strict ;
utilizare Avertizări ;
utilizați 5.34.0 ;
utilizați FileHandle ;

#Preluați numele fișierului de la utilizator pentru a crea
$f-ul meu = <>;
$f-ul meu = ;
chomp ( $f ) ;

#Verificați dacă fișierul există deja sau nu
dacă ( -e $f )
{
#Deschideți fișierul pentru citire
meu $FileHandler = FileHandle- > nou ( ' < $f' ) ;
#Tipărește conținutul fișierului
imprimare < $FileHandler >;
#Închideți handlerul de fișiere
închide $FileHandler ;
}

Ieșire:

Conținutul fișierului „test.txt” este tipărit în rezultat deoarece există în locația curentă:

  p2

Exemplul 3: Adăugați un conținut într-un fișier

Creați un fișier Perl cu următorul script care adaugă conținutul într-un fișier care nu este gol și imprimați dimensiunea fișierului în octeți. Numele fișierului este preluat de la utilizator. Dacă fișierul există și conține datele, se adaugă o linie de text la sfârșitul fișierului. În caz contrar, este tipărit un mesaj.

#!/usr/bin/perl

folosiți strict ;
utilizare Avertizări ;
utilizați 5.34.0 ;
utilizați FileHandle ;

#Preluați numele fișierului de la utilizator pentru a crea
imprimare „Introduceți numele fișierului:” ;
$f-ul meu = <>;
chomp ( $f ) ;

#Verificați dacă fișierul există deja și nu este gol sau nu
dacă ( -s $f )
{


meu $FileHandler = FileHandle- > nou ( ' >> $f' ) ;
#Tipărește dimensiunea fișierului
imprimare „Dimensiunea fișierului este” . $FileHandler- > spune. ' octeți. \n ' ;
Spune „Se adaugă conținut în fișier...” ;
#Așteptați 1 secundă
dormi ( 1 ) ;

#Scrieți conținut la sfârșitul fișierului
imprimare $FileHandler „Este o linie nouă. \n ' ;
#Închideți handlerul de fișiere
$FileHandler- > închide ;
}
altfel
{
Spune 'Fisierul nu exista.' ;
}

Ieșire:

Conform rezultatelor, la fișierul „test.txt” este atașată o nouă linie și dimensiunea fișierului este de 45 de octeți. Apoi, comanda „cat” este executată pentru a verifica dacă conținutul este adăugat corect în fișier sau nu:

  p3-1

Concluzie


Modulul FileHandle este una dintre opțiunile Perl pentru a citi, scrie sau atașa fișierele. Trei utilizări diferite ale acestui modul sunt prezentate în acest tutorial folosind exemple simple.