Módulo FileHandle en Perl

Modulo Filehandle En Perl



Existen varias formas en Perl para crear y acceder a los archivos. Se puede abrir un archivo para leerlo, escribirlo o actualizarlo en Perl utilizando un controlador de archivos. El controlador de archivos se puede utilizar en el método open() en un formato de programación estructurada o en un formato de programación orientada a objetos. El módulo FileHandle se puede usar en Perl para declarar el controlador de archivos como un objeto y usar este objeto para abrir un archivo para crearlo o acceder a él usando diferentes propiedades y métodos de la clase 'FileHandle'. En este tutorial se muestran los usos de algunos métodos comunes del módulo FileHandle y los métodos de uso del módulo FileHandle para trabajar con el archivo en Perl.

Algunos métodos útiles de FileHandle

Algunos métodos comúnmente utilizados del módulo FileHandle son los siguientes:

Método Objetivo
decir Se utiliza para contar el tamaño del archivo en bytes.
getc Se utiliza para leer cada carácter del contenido del archivo.
buscar Se utiliza para mover el puntero del archivo a una posición particular.
eof Indica el final del archivo.
cerca Se utiliza para cerrar el controlador de archivos previamente definido.

Ejemplos de Perl FileHandle

En esta parte del tutorial se muestran diferentes usos del módulo FileHandle utilizando varios ejemplos.







Ejemplo 1: crear un archivo nuevo

Cree un archivo Perl con el siguiente script que crea un nuevo archivo usando el módulo FileHandle. Se toma un nombre de archivo del usuario y se comprueba si existe o no. Si el archivo no existe, el archivo se abre para escritura creando un objeto de la clase “FileHandle” después de esperar 1 segundo.



#!/usr/bin/perl

usar estricto ;
usar advertencias ;
utilizar 5.34.0 ;
utilizar FileHandle ;

#Tomar el nombre del archivo del usuario para crear
imprimir 'Ingrese el nombre del archivo:' ;
mis $f = <>;
morder ( $f ) ;

#Compruebe si el archivo ya existe o no
si ( -e $f )
{
  #Imprimir un mensaje si el archivo existe
decir 'El archivo ya existe.' ;
}

demás

{
  #Crear objeto controlador de archivos
mi $FileHandler = FileHandle- > nuevo ;
decir 'Escribiendo en el archivo...' ;
  #Espera 1 segundo
dormir ( 1 ) ;

  #Abre el archivo para escribir
  si ( $FileHandler- > abierto ( '>$f' ) )
  {
    #Escribe una línea de texto en el archivo.
    imprimir $ controlador de archivos 'Es un mensaje de prueba. \norte Es la segunda línea. \norte ' ;
    #Cerrar el controlador de archivos
$FileHandler- > cerca ;
  }

}

Producción:



Según el resultado, el archivo 'test.txt' no existía antes y este archivo se crea con dos líneas de texto. Luego, se ejecuta el comando “cat” para comprobar si el archivo se creó correctamente con el contenido o no:





  p1-1

El script se ejecuta nuevamente con el mismo valor de entrada y el mensaje 'El archivo ya existe' se imprime aquí porque el archivo 'test.txt' se creó antes.



  p1-2

Ejemplo 2: leer el contenido del archivo

Cree un archivo Perl con la siguiente secuencia de comandos que lea el contenido de un archivo usando la clase 'FileHandle' si el archivo existe. El nombre del archivo se toma del usuario.

#!/usr/bin/perl

usar estricto ;
usar advertencias ;
utilizar 5.34.0 ;
utilizar FileHandle ;

#Tomar el nombre del archivo del usuario para crear
mis $f = <>;
mis $f = ;
morder ( $f ) ;

#Compruebe si el archivo ya existe o no
si ( -e $f )
{
    #Abra el archivo para leer
mi $FileHandler = FileHandle- > nuevo ( '<$f' ) ;
    #Imprimir el contenido del archivo
    imprimir < $ controlador de archivos >;
    #Cerrar el controlador de archivos
cerrar $FileHandler ;
}

Producción:

El contenido del archivo 'test.txt' se imprime en el resultado porque existe en la ubicación actual:

  p2

Ejemplo 3: agregar un contenido a un archivo

Cree un archivo Perl con el siguiente script que agrega el contenido a un archivo que no esté vacío e imprime el tamaño del archivo en bytes. El nombre del archivo se toma del usuario. Si el archivo existe y contiene los datos, se agrega una línea de texto al final del archivo. De lo contrario, se imprime un mensaje.

#!/usr/bin/perl

usar estricto ;
usar advertencias ;
utilizar 5.34.0 ;
utilizar FileHandle ;

#Tomar el nombre del archivo del usuario para crear
imprimir 'Ingrese el nombre del archivo:' ;
mis $f = <>;
morder ( $f ) ;

#Compruebe si el archivo ya existe y si está vacío o no
si ( -s $f )
{


mi $FileHandler = FileHandle- > nuevo ( ' >> $f' ) ;
    #Imprimir el tamaño del archivo
    imprimir 'El tamaño del archivo es ' . $FileHandler- > decir. 'bytes. \norte ' ;
decir 'Agregando contenido al archivo...' ;
    #Espera 1 segundo
dormir ( 1 ) ;

    #Escribir contenido al final del archivo
    imprimir $ controlador de archivos 'Es una línea nueva. \norte ' ;
    #Cerrar el controlador de archivos
$FileHandler- > cerca ;
}
demás
{
decir 'El archivo no existe.' ;
}

Producción:

Según el resultado, se agrega una nueva línea al archivo 'test.txt' y el tamaño del archivo es de 45 bytes. Luego, se ejecuta el comando 'cat' para verificar si el contenido se agregó correctamente al archivo o no:

  p3-1

Conclusión


El módulo FileHandle es una de las opciones de Perl para leer, escribir o agregar archivos. En este tutorial se muestran tres usos diferentes de este módulo mediante ejemplos sencillos.