Hi Ken,

I encountered exactly the same problem today: How to read a file 
AND change something in it? I was not able to do both of them at 
the same time. 

I am sure there is a more correct way to do it, but my solution (in 
the spirit of TIMTOWTDI) was to write to a temporary file and then 
rename the temporary file to the name of the original file, like:


  open FILE, "original.txt" or die "Cannot open file original.txt ($!)\n";
  open TEMP, ">temp.txt" or die "Cannot open file temp.txt ($!)\n";

  foreach my $line (<FILE>){
    $line =~ s/find/replace/gi ;
    print TEMP "$line\n";
  }
 
  close FILE;
  close TEMP;

  rename "temp.txt", "original.txt;

It works, but as I say, I am sure, this is not the best way to do it. 
Therefore, I am just as curious as you, what the experts will tell us.

By the way, dear experts, I am really grateful for the time and effort 
you spend helping us newbies. I learned a lot since I subscribed to 
the list. Thank you!

Greetings from a sunny Cologne, Germany

Anette



> Hi,
> 
> I have a file with say the value "02" in it.
> 
> I can open the file, lock the file, read the value, increment the
> value and do a write but the write always appends and never
> over-writes the exisitng value.  I of course then unlock and close.
> 
> I do a seek before the write to the beginning of the file, even
> checked with "tell" and it returns "0",but the following print or
> syswrite always appends.
> 
> Why?  How do I over-write?
> 
> Thanks
> 
> Ken
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to