use Win32::OLE; $Win32::OLE::Warn = 3; eval {$word = Win32::OLE->GetActiveObject('Word.Application')}; die "Word not installed" if $@; unless (defined $word) { $word = Win32::OLE->new('Word.Application', sub {$_[0]->Quit;}) or die "Oops, cannot start Word"; } $word->Activate; $word->{visible} = 1; my $doc = $word->Documents->Open("$oldfile"); ....... $word->ActiveDocument->SaveAs($newfile); $doc->Close(); $word -> Quit;