in reply to Read strings from a file, search and replace same string in another file.
You're trying to write the results to the same file you're reading from. Instead, read from one file and write your results to a new file, like so:
my $file1 = "C:\\temp\\file1.txt"; my $file2 = "C:\\temp\\file2.bat"; my $file3 = "C:\\temp\\file3.txt"; open (FILE1,"$file1"); open (FILE2,"$file2"); open (FILE3,">$file3"); my @file1 = <FILE1>; my @file2 = <FILE2>; close (FILE1); close (FILE2); chomp @file1; foreach (@file2) { foreach my $search_string (@file1) { s/$search_string/"******"/g; } print FILE3; } close (FILE3);
That should solve immediate problem. Note: I haven't tested or run the updated version.
Update: Tweaked per jethro's comments. (I really ought to not code until I finish my coffee... ;^D)
Update 2: To avoid further embarrassment, I tested it and updated again. It passes my tests now.
...roboticus
When your only tool is a hammer, all problems look like your thumb.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Read strings from a file, search and replace same string in another file.
by jethro (Monsignor) on Dec 08, 2011 at 12:17 UTC | |
|
Re^2: Read strings from a file, search and replace same string in another file.
by Anonymous Monk on Dec 09, 2011 at 05:15 UTC |