use File::Find; use strict; use warnings; my $dir = "path"; find(\&process, $dir); sub process { my $file = $_; my @newFile; open (FILE, "<$file"); while (my $line = ){ if ( $line =~ s/(print)\s*("\w+")/\$lang->$1($2, \$actUser->{'lang'})/g ){ print "\nFound: $1, $2\n"; } push @newFile, $line; } close FILE; open (FILE, ">$file"); foreach my $line (@newFile){ #print FILE $line; print $line; } close FILE; }