2

次の警告が表示されます。

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

このコードを実行すると:

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

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

エラーの原因は何ですか?

根本的な原因を修正するにはどうすればよいですか? (または、そうでなければ警告を抑制しますか?)

4

2 に答える 2

12

ここでの評価は、とにかくまったく何もしません。バックティックがエラーをスローすることはありません。それはあなたがチェックしたいということ$@だけではありません。$?

また、結果を破棄する場合は、システムを使用する方が賢明かもしれません。例えば

system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
    #error handling here...
};
于 2008-11-20T00:37:20.230 に答える
10

の後にセミコロンがありevalます。

于 2008-11-19T23:53:11.847 に答える