Perhaps IPC::Open3? The same as 2, but with error handling.
*update* i'm affraid you're right, it doesn't seem to work like expected...
Using wrong arguments and command, it still returned a proper $pid. The $err remained empty....
Well, while i'm in hunchmode now anyway (i like to see this fixed), could IPC::Cmd help?
"We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise." - Larry Wall.