Perl で、複数のファイルまたがる文字列を置換するには?

以下のように、replace.conf のハッシュ変数に置換前・置換後の文字列を書いておき、replace.pl を実行する。

replace.conf の内容

#/usr/bin/perl -w use strict; our $HOME_DIR = '/home/youraccount'; our $DIR = "$HOME_DIR/targetdirectory"; our %WORDS = (
            'ブラウザー'   # 置換前の文字列
        =>   'ブラウザ',   # 置換後の文字列

            'FTP'       # 置換前の文字列
        =>     'FTP',    # 置換後の文字列
# ... 以下、
            '置換前の文字列1'
        =>  '置換後の文字列1',

            '置換前の文字列2'
        =>  '置換後の文字列2'
# ... という形で追加していけばよい。
    );
1;

replace.pl の内容

#!/usr/bin/perl require './jcode.pl'; require './replace.conf'; opendir(DIR, $DIR) or die "Couldn't open $DIR directory."; my @files = readdir(DIR); closedir(DIR); foreach my $file (@files) {
if(!(-d $file) && $file ne '.' && $file ne '..' && $file ne __FILE__) {
    print "$file\n";
    replace($file);
}
} sub replace {
my ($file) = @_;

open(IN, "$DIR/$file") or die die "Couldn't open $file.";
my @lines = <IN>;
close(IN);
open(OUT, ">$DIR/$file.tmp") or die die "Couldn't open $file.";
foreach my $line (@lines) {

    &amp;jcode'h2z_sjis(\$line);

    while(my($before, $after) = each %WORDS) {

        if($line =~ /$before/) {
            $line =~ s/$before/$after/g;
        }
    }
    print OUT $line;
}
close(OUT);

rename("$DIR/$file.tmp", "$DIR/$file");
unlink("$DIR/$file.tmp");
} 1;