OLE & Excel - Opening causes Excel.exe to hang around

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

This is a very simple script (proof of concept) that simply either
opens an Excel workbook or creates a new one.  When I run this script
(with -w of course:) with the Add line uncommented, EXCEL.EXE starts
when the application object is created and closes when the script is
done.  However, when I run it with the Open line uncommented, EXCEL.EXE
stays running (in process list) once the script is done.  The only way
to get rid of it is to kill it in the Task Manager.  Has anyone out
there had this same problem and knows what I'm doing wrong?  BTW: I'm
using ActiveState perl v5.8.4

use Win32::Ole qw(in with);
use strict;
use Cwd;


sub do_it() {
    my $Excel = "";
    my $Book = "";
    my $key = "";
    my $Sheet = "";
    my $current_path = "";
    my $full_path_and_filename = "";
    my $filename = "";
    my @UserStatArray = ();

    print "Doing it...\n";
    $Excel = Win32::OLE->new( 'Excel.Application',sub { $_[0]->Quit; } )
    or die_nice("Couldn't start Excel to read DTC Spreadsheet!");
    $current_path = getcwd;
    $filename = "blah.xls";
    $full_path_and_filename = $current_path.'/'.$filename;

    #If the line below (Open) is used, EXCEL.EXE
        #stays running (in process list) after the script exits.
    #$Book = $Excel->Workbooks->Open($full_path_and_filename,0,1);
    #If the line below (Add) is used, EXCEL.EXE
        #terminates when the script exits.
    $Book = $Excel->Workbooks->Add;

    $Sheet = $Book->Worksheets(1);
    undef $Sheet;
    undef $Book;
    undef $Excel;

Site Timeline