#!/usr/bin/perl use strict; use warnings; use File::Find; @ARGV = ('.') unless @ARGV; my $dir = shift @ARGV; find(\&edits, $dir); sub edits() { my $seen = 0; my $file = $_; if ($file eq 'metadata.xml') { open (my $file_fh, $file) || die "Can't open $file!\n $!"; my @lines = <$file_fh>; close $file_fh; open $file_fh, ">$file"; foreach my $line ( @lines ) { if ($line =~/merchant/) { $line =~s/_/ /g; } print $file_fh $line; $seen++; } close $file_fh; } print "Updated $File::Find::name\n" if $seen > 0; }