Eval здесь не сделал бы абсолютно ничего в любом случае. Обратные галочки никогда не выбрасывают ошибки. Это не $@
, а $?
, который вы хотите проверить.
Кроме того, если вы отбрасываете результат, возможно, будет более чистой идеей использовать system . например,
system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
#error handling here...
};