use File::Slurp;
my @myHashArray = ( { toFind => qr/(?i)foo/, toReplace => 'bar' } );
my $counter = 0;
my $name = 'data_file'; # $File::Find::name
for my $line (read_file('data_file', chomp => 1)) {
$counter++;
my $orig_line = $line;
$line =~ s/$_->{toFind}/$_->{toReplace}/g for @myHashArray;
next if $line eq $orig_line;
print "LOG: $counter $name\n";
print "LOG: \t Original line: $orig_line\n";
print "LOG: \t Replaced line: $line\n";
}
####
Foolius Caesar
Footholomew Cubbins
No changes here
Just another barrage of text
####
LOG: 1 data_file
LOG: Original line: Foolius Caesar
LOG: Replaced line: barlius Caesar
LOG: 2 data_file
LOG: Original line: Footholomew Cubbins
LOG: Replaced line: bartholomew Cubbins