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


in reply to Word and Win32::OLE

If you want the text, try this.
use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Word'; $Win32::OLE::Warn = 3; # Die on Errors my $Word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application', 'Quit'); $Word->{'Visible'} = 1; my $infile = <SOME FILE PATH>; my $Doc = $Word->Documents->Open($infile); $Doc->Content->Select(); my $text = $Word->Selection->{Text}; print $text; print Win32::OLE->LastError();
The application object is actually the best place to get the selection text from in this case, not the document object.

Update: Although you can use the ->WholeStory; method that you used to select the whole document text and leave the creation of the document object alone, the Open method returns said object.

C-.