Warum wird mein Skript Bericht ‚nicht initialisierte Wert in eval‚string‘?
Frage
Ich erhalte diese Warnung:
Use of uninitialized value in eval \"string\" at myscript.pl line 57.
Wenn ich diesen Code ausführen:
eval;
{
`$client -f $confFile -i $inputFile -o $outputFile`;
};
if( $@ )
{
# error handling here ...
}
Was den Fehler verursacht?
Wie kann ich die zugrunde liegende Ursache zu beheben? (Oder sonst die Warnung unterdrücken?)
Lösung
Es gibt ein Semikolon nach eval
.
Andere Tipps
Die eval hier wäre absolut nichts tun, sowieso. Backticks werfen nie Fehler. Es ist nicht $@
aber $?
, die Sie überprüfen möchten.
Auch wenn Sie das Ergebnis sind wegzuwerfen, kann es eine sauberere Idee zu verwenden System . z.
system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
#error handling here...
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow