Por que o valor não inicializado meu relatório script' em eval ‘string’?
Pergunta
Estou recebendo este aviso:
Use of uninitialized value in eval \"string\" at myscript.pl line 57.
Quando eu executar esse código:
eval;
{
`$client -f $confFile -i $inputFile -o $outputFile`;
};
if( $@ )
{
# error handling here ...
}
O que está causando o erro?
Como posso corrigir a causa subjacente? (Ou não suprimir o aviso?)
Solução
Há um ponto e vírgula após eval
.
Outras dicas
O eval aqui faria absolutamente nada de qualquer maneira. Backticks nunca jogue erros. Não é $@
mas $?
que você deseja verificar.
Além disso, se você está jogando fora o resultado, pode ser uma idéia mais limpo para usar sistema. por exemplo.
system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
#error handling here...
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow