Вы можете использовать Win32 :: OLE .
Кажется, что ваше взаимодействие будет выглядеть примерно так (полностью не проверено):
use Win32::OLE;
my $word = Win32::OLE->new('Word.Application') or die "Could not find Word.\n";
my $doc = $word->Documents->Open($filename);
my $content = valof $doc->{Content};
$content =~ s/banana/apple/g;
$doc->{Content} = $content;
$doc->Save();
$doc->Close();
$word->Quit();
Прочитайте документацию Win32 :: OLE вместе с документами VB для лучшей / дополнительной информации.
Вы также можете найти инструмент "Multireplace" внизу на этой странице интересно.