Dan Sugalski wrote: > > Given that on Unix systems $^E and $! are identical, and that $! is > directly tied to errno, this certainly isn't surprising. Anything that > afects errno (like, say, IO) may then affect $! and $^E identically.(And > $!/$^E non-indentically on systems where they're separate)
On Unix the implementation of $! and $^E should be the same -- that's fixed by the patch I sent (although a more proper version would refactor it (and add tests:)) > Basically you're using a variable that can be affected by external things > in a way that pretty much guarantees that external things will be > happening. That it changes isn't much of a surprise. ($!/$^E may get > modified by some signal handlers too, depending on what you do, so there's > not even any guarantee that "$^E = 42; $^E++;" will end up with $^E set to > 43. Using the Mac OS X equivalent of truss/strace might help to find out why errno changes there.
