perl - 为什么我的脚本报告 'uninitialized value in eval "字符串”?

标签 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 ...
}

是什么导致了错误?

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

最佳答案

这里的 eval 无论如何都不会做任何事情。反引号永远不会抛出错误。您要检查的不是 $@ 而是 $?

此外,如果您要丢弃结果,使用 system 可能是一个更简洁的主意.例如

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

关于perl - 为什么我的脚本报告 'uninitialized value in eval "字符串”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/303841/

相关文章:

c# - 在 c# : expression evaluation function like flash script 中

perl - sysopen 示例不起作用

hibernate - Struts2警告: Could not find property

java - 为什么@NotNull 注释不删除警告?

c++ - 编译器是否有可能检测到整数溢出或其他数据类型溢出的可能性?

javascript - 在 JavaScript 中使用 eval 运行一组闭包

perl - List::Util 不是标准 Perl 发行版的一部分吗?

python - 从相对路径确定绝对路径

perl - 如何测试与间接对象语法一起使用的 exec?

ASP.NET 多个 Eval 字段