http://www.perlmonks.org?node_id=411091

esr has asked for the wisdom of the Perl Monks concerning the following question:

I am using Win32::OLE to interact with Word and I am getting an error which I can't see the reason for. The Perl code is opening a .txt file, running a macro, and then trying to save the file as a Word document (.doc). The SaveAs call precipitates an error which says: Win32::OLE<0.1603> error 0x80020005: "Type mismatch" in METHOD/PROPERTYGET "SaveAs" argument 4 in blahblah line 1318. As near as I can tell, the code I have written is the same as examples I have seen of how to read a text file and save as a Word document. The code snippet is as follows:
use Win32::OLE; use Win32::OLE::Const 'Microsoft Word'; $word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application'); $mydoc = $word->Documents->Open($xfile); $word->Run("tskedfmt"); ($xfn) = $xfile =~ m/(.*)\.txt$/; $xfn .= "\.doc"; $mydoc->SaveAs(FileName => "$xfn", FileFormat => wdFormatDocument); $word->{Visible} = 1;
What am I missing?