back ticks only return STDOUT from the system call, but they do set $? to the call's error status. So at least your script can know that the call failed (and if you control res2.pl you can have it exit($errorstate) where $errorstate is specific to the cause of the problem, or even $! )
And of course, $! is often the error message (but not always)