in reply to Re: qx and $!
in thread qx and $!

That's not right.

Here is how one actually gets meaningful errors from them:

my $output = qx(date); die("Unable to launch external process: $!\n") if not defined $output; die("The external process did not run successfully (error code $?)\n") if $?;
my $rv = system(date); die("Unable to launch external process: $!\n") if $rv == -1; die("The external process did not run successfully (error code $?)\n") if $?;