in reply to
Win32:OLE errors when running same code on Windows XP
I have had bad experiences with tied/magic scalar and using a Perl debugger. The watch window in the debugger will cause every tied variable to have its value regenerated on every step. According to your error messages, the debugger tried to read a tied variable and the method behind the fetch failed because the Win32::OLE call failed.
Tied magic being called on every debugger step became so painful I coded in caller checks into the tied implementation methods to return undef if the caller didn't start with "main::". Try running your script without a debugger.