use strict; use warnings; use Win32::OLE; # brings in constants like wdDocumentsPath use Win32::OLE::Const 'Microsoft Word'; $Win32::OLE::Warn = 3; # reports OLE errors my $word = Win32::OLE->GetActiveObject('Word.Application') or Win32::OLE->new('Word.Application', 'Quit'); print "word is not running\n" unless defined $word;