use strict; use warnings; use CGI qw(:standard); use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Excel'; $Win32::OLE::Warn = 3; # die on errors... my $Excel = Win32::OLE->GetActiveObject('Excel.Application')|| Win32::OLE->new('Excel.Application', 'Quit'); my $Book = $Excel->Workbooks->Open($_[2]); my $Sheet = $Book->Worksheets(1); <.....code....> $Book->ActiveWorkbook->Close(0); $Excel->Quit();