in reply to The behavior of Win32::OLE->new

You want a new instance of IE every time it runs, right?

Instead of Win32::OLE->new(), what you want to use is CreateObject, like so:

my $ie = Win32::OLE->CreateObject('InternetExplorer.Application', 'Qui +t') or die "Can't start IE", Win32::OLE::LastError();

$ie in each script will reference its own instance of IE.

Update: According to Win32::OLE docs, new and CreateObject are equivalent. You should be getting a new instance of ie with each run.