Почему мой скрипт сообщает о неинициализированном значении в eval-строке?

StackOverflow https://stackoverflow.com/questions/303841

  •  08-07-2019
  •  | 
  •  

Вопрос

Я получаю это предупреждение.

Use of uninitialized value in eval \"string\" at myscript.pl line 57.

Когда я запускаю этот код:

eval;
{
        `$client -f $confFile -i $inputFile -o $outputFile`;
};

if( $@ )
{
        # error handling here ...
}

В чем причина ошибки?

Как я могу устранить основную причину? (Или иначе подавить предупреждение?)

Это было полезно?

Решение

После eval стоит точка с запятой.

Другие советы

Эвал здесь все равно ничего не сделает. Обратные галочки никогда не выбрасывают ошибки. Вы хотите проверить не $ @ , а $? .

Кроме того, если вы отбрасываете результат, лучше использовать система . например.

system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
    #error handling here...
};
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top