2

这是我正在编写的程序中的一些代码,语法错误位于第 3 行。

if($header gt $word{
    $wordlist{$word} = $header;
    $header = $word;
    return;
}
4

1 回答 1

20

简而言之-您在第一行缺少右括号

实际上这很有趣,因为您希望 Perl 用它的错误消息将您指向正确的位置。然而,由于运气不好,它看起来就像一个完全有效的代码的开始,只是碰巧做了一些超出你预期的事情。

Perl 实际上认为您查找一个名为的散列%word(使用$word{...}赋值的值作为键)。
因此,如果您这样做,这将是一个完全有效的代码:

if ($header gt $word{
    $wordlist{$word} = $header         # removed the ;
                                }) {   # closed the condition
    $header = $word;
    return;
}

Perl 只有在到达第二行的末尾并看到;

于 2013-11-09T14:50:14.053 回答