Expanding on
Hena's idea I wonder if it would be even more efficient to use Tie::File to go through, writing replacements as you go (untested):
use Tie::File;
my $inputfile = "samplein.txt";
&replacer($inputfile);
sub replacer {
tie my @currentfile, 'Tie::File', $inputfile or die "$!";
my $inputline;
foreach $inputline ( $currentfile[0] .. $#currentfile ) {
foreach my $key (keys %regex) {
$inputline =~ s/$key/$regex{$key}/gee;
}
}
untie @currentfile;
}
## Totally untested
Seems like the write operation would be faster with Tie::File