Mòdul FileHandle en Perl

Modul Filehandle En Perl



Existeixen múltiples maneres a Perl de crear i accedir als fitxers. Es pot obrir un fitxer per llegir, escriure o actualitzar en Perl mitjançant un controlador de fitxers. El controlador de fitxers es pot utilitzar en el mètode open() en un format de programació estructurada o en un format de programació orientada a objectes. El mòdul FileHandle es pot utilitzar en Perl per declarar el controlador de fitxers com a objecte i utilitzar aquest objecte per obrir un fitxer per crear-hi o accedir-hi utilitzant diferents propietats i mètodes de la classe 'FileHandle'. En aquest tutorial es mostren els usos d'alguns mètodes habituals del mòdul FileHandle i els mètodes d'ús del mòdul FileHandle per treballar amb el fitxer en Perl.

Alguns mètodes útils de FileHandle

Alguns mètodes d'ús habitual del mòdul FileHandle són els següents:

Mètode Propòsit
dir S'utilitza per comptar la mida del fitxer en bytes.
getc S'utilitza per llegir cada caràcter del contingut del fitxer.
buscar S'utilitza per moure el punter del fitxer a una posició determinada.
eof Indica el final del fitxer.
Tanca S'utilitza per tancar el gestor de fitxers definit anteriorment.

Exemples de Perl FileHandle

En aquesta part del tutorial es mostren diferents usos del mòdul FileHandle amb diversos exemples.







Exemple 1: creeu un fitxer nou

Creeu un fitxer Perl amb el següent script que crea un fitxer nou mitjançant el mòdul FileHandle. Es pren un nom de fitxer de l'usuari i es comprova si existeix o no. Si el fitxer no existeix, el fitxer s'obre per escriure mitjançant la creació d'un objecte de la classe 'FileHandle' després d'esperar 1 segon.



#!/usr/bin/perl

ús estricte ;
utilitzar avisos ;
utilitzar 5.34.0 ;
utilitzar FileHandle ;

#Preneu el nom del fitxer de l'usuari per crear-lo
imprimir 'Introduïu el nom del fitxer:' ;
el meu $f = <>;
picar ( $f ) ;

#Comprova si el fitxer ja existeix o no
si ( -e $f )
{
#Imprimeix un missatge si el fitxer existeix
dir 'El fitxer ja existeix'. ;
}

altra cosa

{
#Crea un objecte gestor de fitxers
el meu $FileHandler = FileHandle- > nou ;
dir 'Escrivint al fitxer...' ;
#Espereu 1 segon
dormir ( 1 ) ;

#Obre el fitxer per escriure
si ( $FileHandler- > obert ( '> $f' ) )
{
#Escriu una línia de text al fitxer
imprimir $FileHandler 'És un missatge de prova. \n És la segona línia. \n ' ;
#Tanqueu el gestor de fitxers
$FileHandler- > Tanca ;
}

}

Sortida:



Segons la sortida, el fitxer 'test.txt' no existia abans i aquest fitxer es crea amb dues línies de text. A continuació, s'executa l'ordre 'cat' per comprovar si el fitxer s'ha creat correctament amb el contingut o no:





  p1-1

L'script s'executa de nou amb el mateix valor d'entrada i el missatge 'File already exists' s'imprimeix aquí perquè el fitxer 'test.txt' s'ha creat abans.



  p1-2

Exemple 2: llegiu el contingut del fitxer

Creeu un fitxer Perl amb el següent script que llegeix el contingut d'un fitxer mitjançant la classe 'FileHandle' si el fitxer existeix. El nom del fitxer es pren de l'usuari.

#!/usr/bin/perl

ús estricte ;
utilitzar avisos ;
utilitzar 5.34.0 ;
utilitzar FileHandle ;

#Preneu el nom del fitxer de l'usuari per crear-lo
el meu $f = <>;
el meu $f = ;
picar ( $f ) ;

#Comprova si el fitxer ja existeix o no
si ( -e $f )
{
#Obre el fitxer per llegir-lo
el meu $FileHandler = FileHandle- > nou ( ' < $f' ) ;
#Imprimeix el contingut del fitxer
imprimir < $FileHandler >;
#Tanqueu el gestor de fitxers
tanca $FileHandler ;
}

Sortida:

El contingut del fitxer 'test.txt' s'imprimeix a la sortida perquè existeix a la ubicació actual:

  p2

Exemple 3: afegiu un contingut a un fitxer

Creeu un fitxer Perl amb el següent script que afegeix el contingut a un fitxer no buit i imprimiu la mida del fitxer en bytes. El nom del fitxer es pren de l'usuari. Si el fitxer existeix i conté les dades, s'afegeix una línia de text al final del fitxer. En cas contrari, s'imprimeix un missatge.

#!/usr/bin/perl

ús estricte ;
utilitzar avisos ;
utilitzar 5.34.0 ;
utilitzar FileHandle ;

#Preneu el nom del fitxer de l'usuari per crear-lo
imprimir 'Introduïu el nom del fitxer:' ;
el meu $f = <>;
picar ( $f ) ;

#Comproveu si el fitxer ja existeix i no està buit o no
si ( -s $f )
{


el meu $FileHandler = FileHandle- > nou ( ' >> $f' ) ;
#Imprimeix la mida del fitxer
imprimir 'La mida del fitxer és' . $FileHandler- > dir. 'bytes. \n ' ;
dir 'S'està afegint contingut al fitxer...' ;
#Espereu 1 segon
dormir ( 1 ) ;

#Escriu contingut al final del fitxer
imprimir $FileHandler 'És una línia nova. \n ' ;
#Tanqueu el gestor de fitxers
$FileHandler- > Tanca ;
}
altra cosa
{
dir 'L'arxiu no existeix.' ;
}

Sortida:

Segons la sortida, s'afegeix una nova línia al fitxer 'test.txt' i la mida del fitxer és de 45 bytes. A continuació, s'executa l'ordre 'cat' per comprovar si el contingut s'afegeix correctament al fitxer o no:

  p3-1

Conclusió


El mòdul FileHandle és una de les opcions de Perl per llegir, escriure o afegir els fitxers. En aquest tutorial es mostren tres usos diferents d'aquest mòdul amb exemples senzills.