use File::Find;
sub change {
if( -f && /\.html$/ ) {
my $in = $_;
my $out = "$in.$$";
open( IN, $in ) or die;
open( OUT, ">$out" ) or die;
while( <IN> ) {
s/foo/bar/g;
print OUT;
}
close IN;
close OUT;
rename( $out, $in );
}
}
my @dirs = qw( docs );
find ( \&change, @dirs );