$^I = ".bak"; my $directory = "c:/temp/"; opendir( DIR, $directory ) or die "Unable to open dir!"; my @xml_files = grep( /\.xml$/, readdir(DIR) ); say "files found"; print "\n\n"; say for @xml_files; print "\n\n"; say "Replacing strings"; print "\n\n"; foreach my $file (@xml_files) { open( IN, "+>", $file ) or die $!; while( ){ $_ =~ s{&}{&}g; $_ =~ s{&amp;}{&}g; $_ =~ s{\s>\s}{>}g; $_ =~ s{\s<\s}{<}g; print IN $file; } close ( IN ); } closedir (DIR); say for @xml_files;