Perché il mio script riporta 'valore non inizializzato in “stringa” eval?
Domanda
Ricevo questo avviso:
Use of uninitialized value in eval \"string\" at myscript.pl line 57.
Quando eseguo questo codice:
eval;
{
`$client -f $confFile -i $inputFile -o $outputFile`;
};
if( $@ )
{
# error handling here ...
}
Che cosa sta causando l'errore?
Come posso risolvere la causa sottostante? (O altrimenti sopprimere l'avvertimento?)
Soluzione
È presente un punto e virgola dopo eval
.
Altri suggerimenti
L'eval qui non farebbe assolutamente nulla. I backtick non generano mai errori. Non è $ @
ma $?
che vuoi controllare.
Inoltre, se stai gettando via il risultato, potrebbe essere un'idea più pulita usare sistema . per es.
system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
#error handling here...
};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow