Modulo FileHandle in Perl

Modulo Filehandle In Perl



Esistono diversi modi in Perl per creare e accedere ai file. Un file può essere aperto per la lettura, la scrittura o l'aggiornamento in Perl utilizzando un gestore di file. Il gestore di file può essere utilizzato nel metodo open() in un formato di programmazione strutturato o in un formato di programmazione orientato agli oggetti. Il modulo FileHandle può essere utilizzato in Perl per dichiarare il gestore di file come oggetto e utilizzare questo oggetto per aprire un file per crearlo o accedervi utilizzando diverse proprietà e metodi della classe 'FileHandle'. In questo tutorial vengono mostrati gli usi di alcuni metodi comuni del modulo FileHandle e i metodi di utilizzo del modulo FileHandle per lavorare con il file in Perl.

Alcuni metodi utili di FileHandle

Alcuni metodi comunemente usati del modulo FileHandle sono i seguenti:

Metodo Scopo
raccontare Viene utilizzato per contare la dimensione del file in byte.
getc Viene utilizzato per leggere ogni carattere del contenuto del file.
cercare Viene utilizzato per spostare il puntatore del file in una posizione particolare.
eof Indica la fine del file.
vicino Viene utilizzato per chiudere il gestore di file precedentemente definito.

Esempi di Perl FileHandle

Diversi usi del modulo FileHandle sono mostrati in questa parte del tutorial utilizzando più esempi.







Esempio 1: creare un nuovo file

Crea un file Perl con il seguente script che crea un nuovo file utilizzando il modulo FileHandle. Un nome file viene preso dall'utente e viene controllato se esiste o meno. Se il file non esiste, il file viene aperto in scrittura creando un oggetto della classe “FileHandle” dopo aver atteso 1 secondo.



#!/usr/bin/perl

usare rigoroso ;
utilizzo avvertimenti ;
utilizzare 5.34.0 ;
utilizzare FileHandle ;

#Prendi il nome del file dall'utente da creare
stampa 'Inserisci il nome del file:' ;
il mio $ f = <>;
masticare ( $ f ) ;

#Verifica se il file esiste già o meno
Se ( -e $f )
{
#Stampa un messaggio se il file esiste
Dire 'Il file esiste già.' ;
}

altro

{
#Crea un oggetto gestore di file
il mio $FileHandler = FileHandle- > nuovo ;
Dire 'Scrittura nel file...' ;
#Attendere 1 secondo
sonno ( 1 ) ;

#Aprire il file per la scrittura
Se ( $FileHandler- > aprire ( '>$f' ) )
{
#Scrivi una riga di testo nel file
stampa $FileHandler 'È un messaggio di prova. \N È la seconda riga. \N ' ;
#Chiudere il gestore dei file
$FileHandler- > vicino ;
}

}

Produzione:



Secondo l'output, il file 'test.txt' non esisteva prima e questo file viene creato con due righe di testo. Quindi, viene eseguito il comando 'cat' per verificare se il file è stato creato correttamente con il contenuto o meno:





  p1-1

Lo script viene eseguito nuovamente con lo stesso valore di input e qui viene stampato il messaggio 'Il file esiste già' perché il file 'test.txt' è stato creato prima.



  p1-2

Esempio 2: leggere il contenuto del file

Crea un file Perl con il seguente script che legge il contenuto di un file utilizzando la classe 'FileHandle' se il file esiste. Il nome del file viene preso dall'utente.

#!/usr/bin/perl

usare rigoroso ;
utilizzo avvertimenti ;
utilizzare 5.34.0 ;
utilizzare FileHandle ;

#Prendi il nome del file dall'utente da creare
il mio $ f = <>;
il mio $ f = ;
masticare ( $ f ) ;

#Verifica se il file esiste già o meno
Se ( -e $f )
{
#Aprire il file per la lettura
il mio $FileHandler = FileHandle- > nuovo ( '<$f' ) ;
#Stampa il contenuto del file
stampa < $FileHandler >;
#Chiudere il gestore dei file
chiudi $FileHandler ;
}

Produzione:

Il contenuto del file 'test.txt' viene stampato nell'output perché esiste nella posizione corrente:

  p2

Esempio 3: aggiungere un contenuto a un file

Crea un file Perl con il seguente script che aggiunge il contenuto in un file non vuoto e stampa la dimensione del file in byte. Il nome del file viene preso dall'utente. Se il file esiste e contiene i dati, alla fine del file viene aggiunta una riga di testo. Altrimenti viene stampato un messaggio.

#!/usr/bin/perl

usare rigoroso ;
utilizzo avvertimenti ;
utilizzare 5.34.0 ;
utilizzare FileHandle ;

#Prendi il nome del file dall'utente da creare
stampa 'Inserisci il nome del file:' ;
il mio $ f = <>;
masticare ( $ f ) ;

#Verifica se il file esiste già e non è vuoto oppure no
Se ( -s $f )
{


il mio $FileHandler = FileHandle- > nuovo ( ' >> $f' ) ;
#Stampa la dimensione del file
stampa 'La dimensione del file è ' . $FileHandler- > raccontare. ' byte. \N ' ;
Dire 'Aggiunta di contenuto al file...' ;
#Attendere 1 secondo
sonno ( 1 ) ;

#Scrivi il contenuto alla fine del file
stampa $FileHandler 'È una linea nuova. \N ' ;
#Chiudere il gestore dei file
$FileHandler- > vicino ;
}
altro
{
Dire 'Il file non esiste.' ;
}

Produzione:

Secondo l'output, al file 'test.txt' viene aggiunta una nuova riga e la dimensione del file è di 45 byte. Quindi, viene eseguito il comando 'cat' per verificare se il contenuto è stato aggiunto correttamente al file o meno:

  p3-1

Conclusione


Il modulo FileHandle è una delle opzioni di Perl per leggere, scrivere o accodare i file. Tre diversi usi di questo modulo sono mostrati in questo tutorial utilizzando semplici esempi.