I suspect this is not so much a Perl 5.8 issue as a "OLE Upgrade" issue.
Our Perl 5.6 installation has version 0.1601 of OLE.pm, while the
Perl 5.8 installation installs 0.1707.
I have an existing COM function that returns a BSTR.
Under Perl 5.6 if the BSTR is "empty" then Perl returned undef.
However, under Perl 5.8 if the BSTR is empty then Perl returns the
null string ("").
Unfortunately, the software counts on the undef behavior and returned
empty on error and "" as a valid value (in some cases).
I'm have multiple inherited classes that I am trying to wade my way
through, but it isn't clear to me at what level the error even occurs.
I was hoping something as simple as Win32::OLE->Options("Variant")
would fix it, but it doesn't seem to.
If anyone has any insight to how OLE was changed in these versions I
would appreciate some guidance.
Frank