为什么我的脚本报告“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 ...
}
是什么导致了错误?
如何解决根本原因? (或者以其他方式抑制警告?)
I am getting this warning:
Use of uninitialized value in eval \"string\" at myscript.pl line 57.
When I run this code:
eval;
{
`$client -f $confFile -i $inputFile -o $outputFile`;
};
if( $@ )
{
# error handling here ...
}
What is causing the error?
How can I fix the underlying cause? (Or otherwise suppress the warning?)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
无论如何,这里的 eval 绝对不会做任何事情。 反引号永远不会引发错误。 您要检查的不是
$@
而是$?
。另外,如果您要丢弃结果,那么使用 system。 例如
The eval here would do absolutely nothing anyway. Backticks never throw errors. It's not
$@
but$?
that you want to check.Also, if you're throwing away the result, it may be a cleaner idea to use system. e.g.
eval
后面有一个分号。There is a semicolon after
eval
.