http://www.perlmonks.org?node_id=1043097

tobias_hofer has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

I have wrapped the access to a hardware-debugger in a perl module. I have not implemented it in OO-Style (to access stuff by the $self reference i.e.), so a call to GetInstance will return the package-local variable which is the handle to the Win32-OLE Debugger instance. But using the debugger by the variable outside the package breaks and the varialble turns out to be a unblessed reference. Why?

When I am using the debugger by the variable inside the package its working fine.

UPDATE: once $debugger is initialized it is a blessed reference to the OLE Object

Here the code snippets

package myDebugger; use strict; use warning; use Win32; use Win32::OLE; use Win32::OLE qw( in with ); use Win32::OLE::Const 'UDE'; ... my $debugger; sub GetInstance { if ( defined $debugger) { return $debugger; } else { #Initialize Debugger and set $debugger DebuggerInit(); (defined $debugger) ? return $debugger : print "Can't initialize debugger, please check!" ); return 0; } }

Any help and advice is highly welcome!

Best regards!
Tobias