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:
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.
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/perlkoristite 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:
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/perlkoristite 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:
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.