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.
In reply to Re: Read strings from a file, search and replace same string in another file.
by roboticus
in thread Read strings from a file, search and replace same string in another file.
by premal
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |