为什么我的脚本在eval“string”中报告'未初始化值?
问题描述:
我得到这样的警告:为什么我的脚本在eval“string”中报告'未初始化值?
Use of uninitialized value in eval \"string\" at myscript.pl line 57.
当我运行这段代码:
eval;
{
`$client -f $confFile -i $inputFile -o $outputFile`;
};
if([email protected])
{
# error handling here ...
}
是什么原因造成的错误?
我该如何解决根本原因? (或以其他方式抑制警告?)
答
eval
后面有一个分号。
答
这里的eval无论如何都不会做任何事情。反引号从不抛出错误。这不是[email protected]
,而是$?
,你想检查。
此外,如果您丢弃结果,则使用system可能会更清洁。例如
system($client, '-f', $confFile, '-i', $inputFile, '-o', $outputFile) and do {
#error handling here...
};
好天啊。 好的,我是个白痴。 – mseery 2008-11-20 01:35:20
而eval则以$ _作为其默认参数。它可以让你做这样的事情: perl -wnE'say eval' 但是否则不是特别有用。 – ysth 2008-11-20 02:28:45