My educated guess is that the problem is that $! gets set by the last failed system call. Normal Perl code generates a lot of harmless failures, and so you should not expect to have $! mean anything specific unless something just failed.
The flip side of that is that you should not expect $!'s value to be maintained through any complex code, such as the internals of Carp unless a specific effort is made to do so.
In reply to Re: Bug with Carp and $!/$?
by tilly
in thread Bug with Carp and $!/$?
by Kageneko
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |