Yes, perlvar states that you "can set $!" if you want to set the exit code for a subsequent die(). Croak would seem on its face to be a natural extension to die, and maybe should support the propagation of numeric $!.
However, I would expect that if you really want to send a specific numerical exit code, that you do so forcefully and legibly, so that future folks really understand that the exit code is important. There are a lot of magic variables which people think of as "read-only," and before I checked, I thought $! was one of them.
carp "Why I'm crashing"; exit(10);
Even if you don't agree that this is more readable, it should be a proper work-around for you. The case where this wouldn't work is if your caller is trying to use eval in the eval/die exception-throwing model.
--
[ e d @ h a l l e y . c c ]
In reply to Re: Bug with Carp and $!/$?
by halley
in thread Bug with Carp and $!/$?
by Kageneko
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |