die only writes its "exception" to the standard error stream, so you'll need to capture that output. In Unix you can do this using a piped open like open my $fh, 'othercommand 2>&1 |'; and then reading $fh. Or you could even do my $response = `othercommand 2>&1`; and parse out the result. Not sure if that works in Windows. You could also try IPC::Open3. I don't think Win32::Process will let you capture that.