in reply to passing string/refs to run_on_finish with Parallel::ForkManager

Most obvious guess is that $exit_code is expected to be a number, not a string. When Perl gets 'forty' in a numeric context it becomes 0; when it gets your reference \'forty' it just happened to reside at an address who's lower octet was 192. Your run_on_finish is just receiving the aftermath of that numerification of the value.