Modul FileHandle u Perlu

Modul Filehandle U Perlu



U Perlu postoji više načina za stvaranje i pristup datotekama. Datoteka se može otvoriti za čitanje, pisanje ili ažuriranje u Perlu pomoću rukovatelja datotekama. Rukovatelj datotekama može se koristiti u metodi open() u strukturiranom programskom formatu ili objektno orijentiranom programskom formatu. Modul FileHandle može se koristiti u Perlu za deklariranje rukovatelja datotekama kao objekta i korištenje ovog objekta za otvaranje datoteke za stvaranje ili pristup korištenjem različitih svojstava i metoda klase 'FileHandle'. Korištenje nekih uobičajenih metoda modula FileHandle i metode korištenja modula FileHandle za rad s datotekom u Perlu prikazane su u ovom vodiču.

Neke korisne metode FileHandle

Neke najčešće korištene metode modula FileHandle su sljedeće:

metoda Svrha
reći Koristi se za brojanje veličine datoteke u bajtovima.
getc Koristi se za čitanje svakog znaka sadržaja datoteke.
tražiti Koristi se za pomicanje pokazivača datoteke na određeno mjesto.
eof Označava kraj datoteke.
Zatvoriti Koristi se za zatvaranje prethodno definiranog rukovatelja datotekama.

Primjeri Perl FileHandle

Različite upotrebe modula FileHandle prikazane su u ovom dijelu vodiča na više primjera.







Primjer 1: Stvorite novu datoteku

Stvorite Perl datoteku pomoću sljedeće skripte koja stvara novu datoteku pomoću modula FileHandle. Od korisnika se uzima naziv datoteke i provjerava postoji li ili ne. Ako datoteka ne postoji, datoteka se otvara za pisanje stvaranjem objekta klase “FileHandle” nakon čekanja od 1 sekunde.



#!/usr/bin/perl

koristite strogi ;
koristiti upozorenja ;
koristiti 5.34.0 ;
koristiti FileHandle ;

#Uzmite naziv datoteke od korisnika za izradu
ispisati 'Unesite naziv datoteke:' ;
moj $f = <>;
žvakati ( $f ) ;

#Provjeri da li datoteka već postoji ili ne
ako ( -e $f )
{
#Ispiši poruku ako datoteka postoji
reći 'Datoteka već postoji.' ;
}

drugo

{
#Stvorite objekt rukovatelja datotekama
moj $FileHandler = FileHandle- > novi ;
reći 'Pisanje u datoteku...' ;
#Pričekajte 1 sekundu
spavati ( 1 ) ;

#Otvorite datoteku za pisanje
ako ( $FileHandler- > otvoren ( '> $f' ) )
{
#Upišite redak teksta u datoteku
ispisati $FileHandler “To je testna poruka. \n To je druga linija. \n ' ;
#Zatvorite rukovatelja datotekama
$FileHandler- > Zatvoriti ;
}

}

Izlaz:



Prema izlazu, datoteka 'test.txt' prije nije postojala i ova je datoteka stvorena s dva retka teksta. Zatim se izvršava naredba “cat” kako bi se provjerilo je li datoteka uspješno kreirana sa sadržajem ili ne:





  p1-1

Skripta se ponovno izvršava s istom ulaznom vrijednošću i ovdje se ispisuje poruka 'Datoteka već postoji' jer je datoteka 'test.txt' stvorena prije.



  p1-2

Primjer 2: Pročitajte sadržaj datoteke

Stvorite Perl datoteku sa sljedećom skriptom koja čita sadržaj datoteke pomoću klase 'FileHandle' ako datoteka postoji. Naziv datoteke preuzima se od korisnika.

#!/usr/bin/perl

koristite strogi ;
koristiti upozorenja ;
koristiti 5.34.0 ;
koristiti FileHandle ;

#Uzmite naziv datoteke od korisnika za izradu
moj $f = <>;
moj $f = ;
žvakati ( $f ) ;

#Provjeri da li datoteka već postoji ili ne
ako ( -e $f )
{
#Otvorite datoteku za čitanje
moj $FileHandler = FileHandle- > novi ( ' < $f' ) ;
#Ispiši sadržaj datoteke
ispisati < $FileHandler >;
#Zatvorite rukovatelja datotekama
zatvorite $FileHandler ;
}

Izlaz:

Sadržaj datoteke 'test.txt' ispisuje se u izlazu jer postoji na trenutačnoj lokaciji:

  p2

Primjer 3: Dodavanje sadržaja u datoteku

Stvorite Perl datoteku sa sljedećom skriptom koja dodaje sadržaj u nepraznu datoteku i ispisuje veličinu datoteke u bajtovima. Naziv datoteke preuzima se od korisnika. Ako datoteka postoji i sadrži podatke, red teksta se dodaje na kraj datoteke. U protivnom se ispisuje poruka.

#!/usr/bin/perl

koristite strogi ;
koristiti upozorenja ;
koristiti 5.34.0 ;
koristiti FileHandle ;

#Uzmite naziv datoteke od korisnika za izradu
ispisati 'Unesite naziv datoteke:' ;
moj $f = <>;
žvakati ( $f ) ;

#Provjeri da li datoteka već postoji i nije prazna ili ne
ako ( -s $f )
{


moj $FileHandler = FileHandle- > novi ( ' >> $f' ) ;
#Ispiši veličinu datoteke
ispisati 'Veličina datoteke je ' . $FileHandler- > reći. ' bajtova. \n ' ;
reći 'Dodavanje sadržaja u datoteku...' ;
#Pričekajte 1 sekundu
spavati ( 1 ) ;

#Pišite sadržaj na kraju datoteke
ispisati $FileHandler “To je nova linija. \n ' ;
#Zatvorite rukovatelja datotekama
$FileHandler- > Zatvoriti ;
}
drugo
{
reći 'Mapa ne postoji.' ;
}

Izlaz:

Prema izlazu, novi redak se dodaje datoteci 'test.txt', a veličina datoteke je 45 bajtova. Zatim se izvršava naredba “cat” kako bi se provjerilo je li sadržaj ispravno dodan u datoteku ili ne:

  p3-1

Zaključak


Modul FileHandle jedna je od opcija Perla za čitanje, pisanje ili dodavanje datoteka. Tri različite upotrebe ovog modula prikazane su u ovom vodiču pomoću jednostavnih primjera.