in reply to Re^2: Windows Device Tree ($^E)
in thread Windows Device Tree

I've never been 100% sure whether referencing $^E, (which I always use myself), is effectively a synchronous call to GetLastError(), or whether it ($^E) only get's set if the XS code arranges to do so? Hence my reluctance to recommend $^E to others directly.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^4: Windows Device Tree ($^E)
by tye (Sage) on Aug 28, 2006 at 19:27 UTC

    The "get magic" on $^E is simply GetLastError() along with building a string out of the number returned.

    But there is a problem with XS modules not arranging for $^E to be set, but that is because several XS modules use API(s) that return a failure code and the XS code fails to call SetLastError(), which means that calling Win32::GetLastError() doesn't get around such problems anyway.

    - tye