in reply to Search and Replace

if particular (exact) tags match a particular file to replace the content, then you are not at all dealing with regex, but instead a simple string comparison (for the tags that is). something along the lines of the following should just about do it, if i'm understanding your question correctly.
while($line=<>) { chomp $line; if($line=~m/<REANALYZED>/) { print "$line\n"; system("cat new_content_for_reanalyzed_tag_file"); do { $line=<>; chomp $line; } until($line=~m/<\/REANALYZED>/); print "$line\n"; } elsif($line=~m/<ANOTHERTAG>/) { print "$line\n"; system("cat another_file_for_this_tag"); . . . etc. } else { print "$line\n"; }

I'm sure you can make that much simpler by using some perlisms and make some subs out of re-usable code, but that's the main jist of it. Use redirection to feed this program with your input file, and redirect standard output as you need. E.g. perl this_script.pl <orig_file >new_file