package readWord; use strict; use Win32::OLE qw(in with); require Exporter; use vars qw(@ISA @EXPORT); @ISA = qw(Exporter); @EXPORT = qw(readActiveDoc); sub readActiveDoc # this method returns the name of the active document and 2 hashes containing every single # word found in the document and all the document's properties. Hence it is ready for use { if ( my $word = Win32::OLE->GetActiveObject('Word.Application'))# connect to word document { if ($word->Documents->Count()) # makes sure at least one document is open { # next line for debug only # print "\nSuccessfully connected to existing word"; my $docName = $word->ActiveDocument->Name; # retrieve name my $docProperties = $word->ActiveDocument->{BuiltInDocumentProperties}; my $wordRange = $word->ActiveDocument->Content; return ($docName,$docProperties,$wordRange); } } return (undef,undef,undef); # if code reaches this line then it hasn't reached the other return } # implying either the program's not open or there's no document.