Попробуйте проверить значение $ ?.Он содержит код возврата последней выполненной внешней команды, но он перегружен, чтобы содержать дополнительную информацию, такую как сигнал, который убил команду, и был ли дамп ядра, и т. Д.
Фактический код возврата может бытьполучено через
my $return_code = $? >> 8;
Если оно равно нулю, команда выполнена успешно, если нет, то это состояние ошибки, с которой вышла команда (с которой, например, int main () возвращает C).