スクリプトが「初期化されていない値をeval "string"で報告するのはなぜですか?
質問
この警告が表示されます:
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...
};
所属していません StackOverflow