Perl: probleem met filehandler

Moderators: jkien, Xilvo

Reageer
Berichten: 13

Perl: probleem met filehandler

Hoi allemaal,

Ik ben op school bezig met een cursus programmeren met perl, dus het is allemaal nog vrij nieuw voor me. Ik zit in de knoop met het schrijven van programma. Ik hoop dat iemand me een hint kan geven om me de goede weg op te sturen zodat ik verder kan proberen het programma te laten werken. ;)

Ik wil in een bestand een aantal getallen plaatsen. En de naam van dat bestand moet aan de gebruiker gevraagd worden. Dit wil ik doen met behulp van een filehandler.

Ik heb tot nu toe dit geschreven, hij vraagt hoe het bestand moet heten en opent de filehandler:

----------------------------------------

#!/usr/bin/perl -w -s

print "Voer de bestandsnaam in en zet de extensie .txt erachter:\n";

$bestand = <STDIN>;

chomp $bestand;

#Bestand openen met filehandler

open(FHWRITE, ">$bestand");


----------------------------------------

Het is de bedoeling dat in het bestand de even getallen van -100 tot en met 100 komen te staan. Met uitzondering op de getallen -12 en 98, die mogen er niet tussen staan.

Dus ik heb een loop gemaakt die alle even getallen van -100 tot 100 weergeeft.

Ik heb in de loop de getallen -12 en 98 nog niet weggehaald daar moet ik nog naar kijken. Ik zat te denken om later de filehandler weer te openen en die twee getallen eruit te halen als dat mogelijk is?

Dit is de loop:

----------------------------------------

$begingetal = -102;

while($begingetal !=100){

$begingetal +=2; print "$begingetal\n";

}


----------------------------------------

Om in het bestand te schrijven zal ik print "$begingetal\n" wel weglaten, dat had ik erbij gezet om te kunnen kijken of de loop werkte.

Nu heb ik het volgende bedacht:

----------------------------------------

#!/usr/bin/perl -w -s

print "Voer de bestandsnaam in en zet de extensie .txt erachter:\n";

$bestand = <STDIN>;

chomp $bestand;

#Bestand openen met filehandler

open(FHWRITE, ">$bestand");

#Lus naar bestand wegschrijven

print FHWRITE $begingetal = -102;

while($begingetal !=100){

$begingetal +=2}

#Inhoud van het bestand in een array plaatsen

@inhoudbestand = <FHWRITE>;

#de filehandler afsluiten

close FHWRITE;

#Inhoud van het bestand op scherm tonen

print "@inhoudbestand";

exit;


----------------------------------------

Om het gehele bestand later weer op het scherm te tonen heb ik het in een array gezet. Alleen het werkt niet om het op het scherm te tonen ;)

Als ik op de computer kijk is het bestand wel aangemaakt, en als ik het open staat er ook iets ingeschreven. Alleen er komt alleen -102 in te staan.

Is het wel mogelijk om op deze manier een loop in een bestand weg te schrijven?

Bij voorbaat dank!

Berichten: 13

Re: Perl: probleem met filehandler

Ik heb het al opgelost ;)

Reageer