Why do you store the error in `$self`?

Just return it:

```perl
return wantarray ? ($cmd_output, $cmd_err) : ($cmd_output || "0E0");
```
Or something like that.