FileHandle-module in Perl

Filehandle Module In Perl



Er bestaan ​​in Perl meerdere manieren om bestanden aan te maken en te openen. Een bestand kan worden geopend om in Perl te lezen, te schrijven of bij te werken met behulp van een bestandshandler. De bestandshandler kan worden gebruikt in de open()-methode in een gestructureerd programmeerformaat of objectgeoriënteerd programmeerformaat. De FileHandle-module kan in Perl worden gebruikt om de bestandshandler als een object te declareren en dit object te gebruiken om een ​​bestand te openen voor het maken of openen ervan met behulp van verschillende eigenschappen en methoden van de klasse 'FileHandle'. Het gebruik van enkele algemene methoden van de FileHandle-module en de methoden voor het gebruik van de FileHandle-module om met het bestand in Perl te werken, worden in deze zelfstudie getoond.

Enkele nuttige methoden van FileHandle

Enkele veelgebruikte methoden van de FileHandle-module zijn als volgt:

Methode Doel
vertellen Het wordt gebruikt om de grootte van het bestand in bytes te tellen.
krijgc Het wordt gebruikt om elk teken van de bestandsinhoud te lezen.
zoeken Het wordt gebruikt om de bestandsaanwijzer naar een bepaalde positie te verplaatsen.
eof Het geeft het einde van het bestand aan.
dichtbij Het wordt gebruikt om de eerder gedefinieerde bestandshandler te sluiten.

Voorbeelden van Perl FileHandle

In dit deel van de tutorial worden verschillende toepassingen van de FileHandle-module getoond aan de hand van meerdere voorbeelden.







Voorbeeld 1: Maak een nieuw bestand

Maak een Perl-bestand met het volgende script waarmee een nieuw bestand wordt gemaakt met behulp van de FileHandle-module. Er wordt een bestandsnaam van de gebruiker overgenomen en gecontroleerd of deze bestaat of niet. Als het bestand niet bestaat, wordt het bestand geopend voor schrijven door na 1 seconde wachten een object van de klasse “FileHandle” te maken.



#!/usr/bin/perl

gebruik strikt ;
gebruik waarschuwingen ;
gebruik 5.34.0 ;
gebruik FileHandle ;

#Neem de bestandsnaam over van de gebruiker die u wilt maken
afdrukken 'Voer de bestandsnaam in:' ;
mijn $f = <>;
kauw ( $f ) ;

#Controleer of het bestand al bestaat of niet
als ( -e $f )
{
#Druk een bericht af als het bestand bestaat
inspraak 'Bestand bestaat al.' ;
}

anders

{
#Maak bestandshandlerobject
mijn $FileHandler = FileHandle- > nieuw ;
inspraak 'Schrijven in het bestand...' ;
#Wacht 1 seconde
slaap ( 1 ) ;

#Open het bestand om te schrijven
als ( $FileHandler- > open ( '> $f' ) )
{
#Schrijf een regel tekst in het bestand
afdrukken $FileHandler ‘Het is een testbericht. \N Het is de tweede regel. \N ' ;
#Sluit de bestandshandler
$FileHandler- > dichtbij ;
}

}

Uitgang:



Volgens de uitvoer bestond het bestand “test.txt” nog niet eerder en is dit bestand gemaakt met twee regels tekst. Vervolgens wordt de opdracht “cat” uitgevoerd om te controleren of het bestand met de inhoud succesvol is gemaakt of niet:





  p1-1

Het script wordt opnieuw uitgevoerd met dezelfde invoerwaarde en het bericht “Bestand bestaat al” wordt hier afgedrukt omdat het bestand “test.txt” eerder is aangemaakt.



  p1-2

Voorbeeld 2: Lees de inhoud van het bestand

Maak een Perl-bestand met het volgende script dat de inhoud van een bestand leest met behulp van de klasse “FileHandle” als het bestand bestaat. De bestandsnaam wordt overgenomen van de gebruiker.

#!/usr/bin/perl

gebruik strikt ;
gebruik waarschuwingen ;
gebruik 5.34.0 ;
gebruik FileHandle ;

#Neem de bestandsnaam over van de gebruiker die u wilt maken
mijn $f = <>;
mijn $f = ;
kauw ( $f ) ;

#Controleer of het bestand al bestaat of niet
als ( -e $f )
{
#Open het bestand om te lezen
mijn $FileHandler = FileHandle- > nieuw ( ' < $f' ) ;
#Druk de bestandsinhoud af
afdrukken < $FileHandler >;
#Sluit de bestandshandler
sluit $FileHandler ;
}

Uitgang:

De inhoud van het bestand “test.txt” wordt in de uitvoer afgedrukt omdat deze op de huidige locatie bestaat:

  p2

Voorbeeld 3: Voeg inhoud toe aan een bestand

Maak een Perl-bestand met het volgende script dat de inhoud toevoegt aan een niet-leeg bestand en druk de grootte van het bestand in bytes af. De bestandsnaam wordt overgenomen van de gebruiker. Als het bestand bestaat en de gegevens bevat, wordt aan het einde van het bestand een regel tekst toegevoegd. Anders wordt er een bericht afgedrukt.

#!/usr/bin/perl

gebruik strikt ;
gebruik waarschuwingen ;
gebruik 5.34.0 ;
gebruik FileHandle ;

#Neem de bestandsnaam over van de gebruiker die u wilt maken
afdrukken 'Voer de bestandsnaam in:' ;
mijn $f = <>;
kauw ( $ f ) ;

#Controleer of het bestand al bestaat en niet leeg is of niet
als ( -s $f )
{


mijn $FileHandler = FileHandle- > nieuw ( ' >> $f' ) ;
#Druk de bestandsgrootte af
afdrukken 'De grootte van het bestand is' . $FileHandler- > vertellen. 'bytes. \N ' ;
inspraak 'Inhoud aan het bestand toevoegen...' ;
#Wacht 1 seconde
slaap ( 1 ) ;

#Schrijf inhoud aan het einde van het bestand
afdrukken $FileHandler ‘Het is een nieuwe lijn. \N ' ;
#Sluit de bestandshandler
$FileHandler- > dichtbij ;
}
anders
{
inspraak 'Bestand bestaat niet.' ;
}

Uitgang:

Volgens de uitvoer wordt een nieuwe regel toegevoegd aan het bestand 'test.txt' en de grootte van het bestand is 45 bytes. Vervolgens wordt het commando “cat” uitgevoerd om te controleren of de inhoud correct aan het bestand is toegevoegd of niet:

  p3-1

Conclusie


De FileHandle-module is een van de opties van Perl om de bestanden te lezen, schrijven of toe te voegen. In deze tutorial worden drie verschillende toepassingen van deze module getoond aan de hand van eenvoudige voorbeelden.