<p>Is it possible to run an external process from Perl, capture its stderr, stdout AND the process exit code?</p>

<p>I seem to be able to do combinations of these, e.g. use backticks to get stdout, IPC::Open3 to capture outputs, and system() to get exit codes.</p>

<p>How do you capture stderr, stdout, and the exit code all at once?</p>

If you reread the documentation for IPC::Open3, you'll see a note that you should call
waitpid
to reap the child process. Once you do this, the status should be available in
```
$?
```
. The exit value is
```
$? >> 8
```
. See
```
$?
```
in perldoc perlvar
.