in reply to Check if "System" was succesful

You should check the value of $?.

From perldoc perlvar:

    $?      The status returned by the last pipe close, backtick (``) command, successful call to wait() or waitpid(), or from the system() operator. This is just the 16-bit status word returned by the wait() system call (or else is made up to look like it).

Thus, the exit value of the subprocess is really ("$? >> 8"), and "$? & 127" gives which signal, if any, the process died from, and "$? & 128" reports whether there was a core dump.

(Mnemonic: similar to sh and ksh.)

...

If you have installed a signal handler for "SIGCHLD", the value of $? will usually be wrong outside that handler.

....

Also see "Error Indicators".