foreach my $file(@files){ open(TMP, '>/tmp/temp.html') || die "tmp file open failed:$!\n"; open(FILE, "$file") || die "source file open failed: $!\n"; while(){ s/(.+)<\/title>/<title>$new_title<\/title>/i; print TMP $_; } close(TMP); close(FILE); unlink($file); rename('/tmp/temp.html', $file); }