in reply to Re^2: Warning: "Win32::OLE operating in debugging mode: _Unique => 1"
in thread Warning: "Win32::OLE operating in debugging mode: _Unique => 1"

Have you looked at what the Win32::OLE documentation has to say about _Unique? I don't see how I could provide more information than what its author wrote on the subject.

  • Comment on Re^3: Warning: "Win32::OLE operating in debugging mode: _Unique => 1"
  • Download Code

Replies are listed 'Best First'.
Re^4: Warning: "Win32::OLE operating in debugging mode: _Unique => 1"
by bulk88 (Priest) on Jun 25, 2012 at 03:10 UTC
    from the POD of win32 ole

    =item _Unique

    The C<_Unique> options guarantees that Win32::OLE will maintain a one-to-one mapping between Win32::OLE objects and the native COM/OLE objects. Without this option, you can query the same property twice and get two different Win32::OLE objects for the same underlying COM object.

    Using a unique proxy makes life easier for tree traversal algorithms to recognize they already visited a particular node. This option comes at a price: Win32::OLE has to maintain a global hash of all outstanding objects and their corresponding proxies. Identity checks on COM objects can also be expensive if the objects reside out-of-process or even on a different computer. Therefore this option is off by default unless the program is being run in the debugger.

    Unfortunately, this option doesn't always help. Some programs will return new COM objects for even the same property when asked for it multiple times (especially for collections). In this case, there is nothing Win32::OLE can do to detect that these objects are in fact identical (because they aren't at the COM level).

    The C<_Unique> option can be set to either 1 (enabled) or 0 (disabled, default).


    Its pretty self explanatory. Change it back to 0 if you see a reason.