Subject: | $^E unreliable |
Substitute this for the FETCH routine:
sub FETCH
{
my $errno = $^E+0;
return $^E=$errno unless exists $MacErrors{ $errno };
return $MacErrors{ $errno }->description || $MacErrors{ $errno }->symbol;
}
Currently, in perl 5.8.x, $^E is unreliable after being accessed once. This is more robust anyway, but on any perl 5.8.x built without ithreads on Mac OS X, $MacError simply doesn't work for negative values, so this patch is critical.