As pointed out earlier in some other thread, $! will not provide any helpful message on errors from system() or backticks. You will usually get a system error message which has no relation to $! echoed to STDERR though, and the rest of your die message will print with the line number.