in reply to Bug with Carp and $!/$?

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 ]