Bestanden lezen en schrijven in Perl

Bestanden lezen en schrijven in Perl

Perl is een ideale taal voor het werken met bestanden. Het heeft de basismogelijkheden van elk shellscript en geavanceerde tools, zoals reguliere expressies, die het nuttig maken. Om met Perl-bestanden te werken, moet u eerst leren hoe u ze kunt lezen en ernaar kunt schrijven. Het lezen van een bestand gebeurt in Perl door een filehandle voor een specifieke bron te openen.

Een bestand lezen in Perl

Om met het voorbeeld in dit artikel te werken, hebt u een bestand nodig om het Perl-script te kunnen lezen. Maak een nieuw tekstdocument met de naamdata.txt en plaats het in dezelfde map als het onderstaande Perl-programma.

Typ in het bestand zelf een paar namen - één per regel:

Wanneer u het script uitvoert, moet de uitvoer hetzelfde zijn als het bestand zelf. Het script opent eenvoudig het opgegeven bestand en loopt er regel voor regel doorheen, waarbij elke regel wordt afgedrukt.

Maak vervolgens een filehandle met de naam MYFILE, open deze en wijs deze naar het bestand data.txt.

Gebruik vervolgens een eenvoudige while-lus om elke regel van het gegevensbestand automatisch een voor een te lezen. Dit plaatst de waarde van elke regel in de tijdelijke variabele $ _ voor één lus.

Gebruik in de lus de chomp-functie om de nieuwe regels aan het einde van elke regel te wissen en druk vervolgens de waarde van $ _ af om aan te geven dat deze is gelezen.

Sluit ten slotte de filehandle om het programma te voltooien.

Schrijven naar een bestand in Perl

Neem hetzelfde gegevensbestand waarmee je hebt gewerkt tijdens het leren lezen van een bestand in Perl. Deze keer zul je er naar schrijven. Als u naar een bestand in Perl wilt schrijven, moet u een filehandle openen en deze naar het bestand wijzen dat u schrijft. Als u Unix, Linux of een Mac gebruikt, moet u mogelijk ook uw bestandsrechten controleren om te zien of uw Perl-script naar het gegevensbestand mag schrijven.

Als u dit programma uitvoert en vervolgens het programma uitvoert uit de vorige sectie over het lezen van een bestand in Perl, ziet u dat het nog een naam aan de lijst heeft toegevoegd.

Elke keer dat u het programma uitvoert, wordt er aan het einde van het bestand nog een "Bob" toegevoegd. Dit gebeurt omdat het bestand in de toevoegmodus is geopend. Om een ​​bestand in de toevoegmodus te openen, plaatst u de bestandsnaam gewoon voor de>> symbool. Dit vertelt de open functie die u naar het bestand wilt schrijven door meer aan het einde ervan te plakken.

Als u in plaats daarvan het bestaande bestand wilt overschrijven door een nieuw, gebruikt u de> enkel groter dan symbool om de open functie te laten weten dat u elke keer een nieuw bestand wilt. Probeer de >> te vervangen door een> en u ziet dat het data.txt-bestand wordt gereduceerd tot een enkele naam - Bob - elke keer dat u het programma uitvoert.

Gebruik vervolgens de afdrukfunctie om de nieuwe naam naar het bestand af te drukken. U drukt af naar een filehandle door de afdrukinstructie met de filehandle te volgen.

Sluit ten slotte de filehandle om het programma te voltooien.