use Win32::OLE qw(in with); use Win32::OLE::Const; use Win32::OLE::Const 'Microsoft Excel'; # get control of Excel my $ex; eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')}; die "Excel not installed" if $@; unless (defined $ex) { $ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;}) or die "Oops, cannot start Excel"; } # open a file my $book = $ex->Workbooks->Open(".\\mydir\\myfile.xls"); # (do stuff here) # cleanup $book->Close; undef $book; undef $ex;