【问题标题】:Why is there a syntax error with this eval?为什么这个 eval 有语法错误?
【发布时间】:2015-01-11 16:12:15
【问题描述】:

我只是第一次尝试 eval,并得到以下代码的编译错误:

my $dom;
eval {
    $dom = $PRSR->load_xml(location => $fullpathname, no_blanks => 1);
}

my $dtlDocType = getObjectType($dom); # <----- the error occurs here

它说“全局符号 $dtlDocType 需要明确的包名称”。当我删除 eval 并让行设置 $dom 保持没有块时,它可以工作。将第一行中的 $dom 初始化为任何内容都没有任何区别。

有什么问题?

【问题讨论】:

  • eval { ... } 后面需要一个分号,它不是一个块。
  • 哦...谢谢。永远不会想到这一点。
  • 不客气。文档似乎将其称为块,不太清楚为什么,当它不具有块的这种特征时。

标签: perl syntax-error eval


【解决方案1】:

eval { ... } 后面需要一个分号。

【讨论】:

  • 谢谢!文档专门说“eval BLOCK”,所以我有点看不到后面示例中的分号......
  • 'eval BLOCK' 是一个表达式,是的。要把它放在一个语句中,你需要在它后面加上一个分号。
猜你喜欢
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 2015-02-11
  • 2014-04-30
  • 1970-01-01
  • 2016-11-19
相关资源
最近更新 更多