Module FileHandle en Perl

Module Filehandle En Perl



Il existe plusieurs manières en Perl de créer et d'accéder aux fichiers. Un fichier peut être ouvert en lecture, en écriture ou en mise à jour en Perl à l'aide d'un gestionnaire de fichiers. Le gestionnaire de fichiers peut être utilisé dans la méthode open() dans un format de programmation structuré ou un format de programmation orienté objet. Le module FileHandle peut être utilisé en Perl pour déclarer le gestionnaire de fichiers en tant qu'objet et utiliser cet objet pour ouvrir un fichier afin de le créer ou d'y accéder à l'aide de différentes propriétés et méthodes de la classe « FileHandle ». Les utilisations de certaines méthodes courantes du module FileHandle et les méthodes d'utilisation du module FileHandle pour travailler avec le fichier en Perl sont présentées dans ce didacticiel.

Quelques méthodes utiles de FileHandle

Certaines méthodes couramment utilisées du module FileHandle sont les suivantes :

Méthode But
dire Il est utilisé pour compter la taille du fichier en octets.
obtenirc Il est utilisé pour lire chaque caractère du contenu du fichier.
chercher Il est utilisé pour déplacer le pointeur de fichier vers une position particulière.
eof Il indique la fin du fichier.
fermer Il est utilisé pour fermer le gestionnaire de fichiers précédemment défini.

Exemples de gestionnaire de fichiers Perl

Différentes utilisations du module FileHandle sont présentées dans cette partie du didacticiel à l'aide de plusieurs exemples.







Exemple 1 : créer un nouveau fichier

Créez un fichier Perl avec le script suivant qui crée un nouveau fichier à l'aide du module FileHandle. Un nom de fichier est extrait de l'utilisateur et vérifié s'il existe ou non. Si le fichier n'existe pas, le fichier est ouvert en écriture en créant un objet de la classe « FileHandle » après avoir attendu 1 seconde.



#!/usr/bin/perl

utiliser strict ;
utiliser avertissements ;
utiliser 5.34.0 ;
utiliser FileHandle ;

#Prenez le nom du fichier de l'utilisateur pour créer
imprimer 'Entrez le nom du fichier :' ;
mon $f = <> ;
grignoter ( $f ) ;

#Vérifiez si le fichier existe déjà ou non
si ( -e $f )
{
#Imprimer un message si le fichier existe
dire 'Le fichier existe déjà.' ;
}

autre

{
#Créer un objet gestionnaire de fichiers
mon $FileHandler = FileHandle- > nouveau ;
dire 'Ecrire dans le fichier...' ;
#Attendez 1 seconde
dormir ( 1 ) ;

#Ouvrez le fichier en écriture
si ( $FileHandler- > ouvrir ( '> $f' ) )
{
#Écrivez une ligne de texte dans le fichier
imprimer $Gestionnaire de fichiers 'C'est un message test. \n C'est la deuxième ligne. \n ' ;
#Fermez le gestionnaire de fichiers
$FileHandler- > fermer ;
}

}

Sortir:



D'après le résultat, le fichier « test.txt » n'existait pas auparavant et ce fichier est créé avec deux lignes de texte. Ensuite, la commande « cat » est exécutée pour vérifier si le fichier est créé avec succès avec le contenu ou non :





  p1-1

Le script est exécuté à nouveau avec la même valeur d'entrée et le message « Le fichier existe déjà » est imprimé ici car le fichier « test.txt » est créé auparavant.



  p1-2

Exemple 2 : Lire le contenu du fichier

Créez un fichier Perl avec le script suivant qui lit le contenu d'un fichier à l'aide de la classe « FileHandle » si le fichier existe. Le nom de fichier provient de l'utilisateur.

#!/usr/bin/perl

utiliser strict ;
utiliser avertissements ;
utiliser 5.34.0 ;
utiliser FileHandle ;

#Prenez le nom du fichier de l'utilisateur pour créer
mon $f = <> ;
mon $f = ;
grignoter ( $f ) ;

#Vérifiez si le fichier existe déjà ou non
si ( -e $f )
{
#Ouvrez le fichier en lecture
mon $FileHandler = FileHandle- > nouveau ( ' < $f' ) ;
#Imprimer le contenu du fichier
imprimer < $Gestionnaire de fichiers > ;
#Fermez le gestionnaire de fichiers
fermer $FileHandler ;
}

Sortir:

Le contenu du fichier « test.txt » est imprimé dans la sortie car il existe à l'emplacement actuel :

  p2

Exemple 3 : ajouter un contenu dans un fichier

Créez un fichier Perl avec le script suivant qui ajoute le contenu dans un fichier non vide et imprimez la taille du fichier en octets. Le nom de fichier provient de l'utilisateur. Si le fichier existe et contient les données, une ligne de texte est ajoutée à la fin du fichier. Sinon, un message est imprimé.

#!/usr/bin/perl

utiliser strict ;
utiliser avertissements ;
utiliser 5.34.0 ;
utiliser FileHandle ;

#Prenez le nom du fichier de l'utilisateur pour créer
imprimer 'Entrez le nom du fichier :' ;
mon $f = <> ;
grignoter ( $f ) ;

#Vérifiez si le fichier existe déjà et non vide ou non
si ( -s $f )
{


mon $FileHandler = FileHandle- > nouveau ( ' >> $f' ) ;
#Imprimer la taille du fichier
imprimer 'La taille du fichier est de ' . $FileHandler- > dire. ' octets. \n ' ;
dire 'Ajouter du contenu au fichier...' ;
#Attendez 1 seconde
dormir ( 1 ) ;

#Écrire le contenu à la fin du fichier
imprimer $Gestionnaire de fichiers 'C'est une nouvelle ligne. \n ' ;
#Fermez le gestionnaire de fichiers
$FileHandler- > fermer ;
}
autre
{
dire 'Fichier ne existe pas.' ;
}

Sortir:

Selon le résultat, une nouvelle ligne est ajoutée au fichier « test.txt » et la taille du fichier est de 45 octets. Ensuite, la commande « cat » est exécutée pour vérifier si le contenu est correctement ajouté dans le fichier ou non :

  p3-1

Conclusion


Le module FileHandle est l'une des options de Perl pour lire, écrire ou ajouter des fichiers. Trois utilisations différentes de ce module sont présentées dans ce didacticiel à l'aide d'exemples simples.