in reply to win32::ole and MS Office 2010 over cgi

This might be too late and not address your problem, but I have had similar troubles moving from Word 2003 to 2010, in particular your code example flunks for me too. After some anguish I recorded a macro to open a file with Word 2010 - and there was one big difference from 2003. Seems Word 2010 wants to see just a file name proper in the Open(), with a change of working directory beforehand. Doing that works for me. Here's a crude example you might try, note I've assumed a full path for $oldfile with forward slashes only:

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; $oldfile =~ m!^(.+?)/([^/]+)$!; my $dir = $1 . '/'; my $name = $2; $word->ChangeFileOpenDirectory($dir); my $doc = $word->Documents->Open("$name"); ...