为什么我的脚本报告'eval中未初始化的值“字符串”?

时间:2008-11-19 23:48:13

标签: perl warnings eval

我收到了这个警告:

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

当我运行此代码时:

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

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

导致错误的原因是什么?

如何解决根本原因? (或以其他方式压制警告?)

2 个答案:

答案 0 :(得分:12)

无论如何,这里的评价绝对没有任何意义。反引号永远不会抛出错误。您想要检查$@而不是$?

此外,如果您丢弃结果,使用system可能更清晰。 e.g。

system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
    #error handling here...
};

答案 1 :(得分:10)

eval之后有一个分号。