in reply to text file search and replace

Don't use the same filehandle for reading and writing. One solution is to write what you want to a temporary file, then when you're done you can rename the temporary file to the original name.

Or try Tie::File.

Replies are listed 'Best First'.
Re^2: text file search and replace
by igotlongestname (Acolyte) on Feb 19, 2008 at 18:45 UTC
    Your comment is something I had noticed, but was unsure what to do about. I had been working on this for several hours with no luck and came for help, but somehow your comment triggered a different path. I got something that does exactly what I want it to, which is attached below. As a secondary thought, I want to be a better Perl programmer, thus if anybody has any ideas that are clear ways to do it better, or poor ways of programming in my code, I'm all for hearing them. Thanks!
    $COMPFILE = IO::File->new; $TMP = IO::File->new; $COMPTMPLT= IO::File->new; $COMPFILE->open("< comp_no_rods.txt" or die "Can't open"); $COMPTMPLT->open("< comp_template.txt" or die "Can't open comp_templat +e"); $TMP->open("> tmpfile.txt" or die "Your TMP file sucks"); until ($COMPFILE -> eof){ $compline = $COMPFILE->getline(); if ($compline !~ /END/){ print $TMP "$compline"; } } $TMP->open(">> tmpfile.txt" or die "Your TMP file sucks"); until ($COMPTMPLT -> eof){ $tmpltline = $COMPTMPLT->getline(); print $TMP "$tmpltline"; }