Perl语法编译错误

时间:2013-11-09 14:48:03

标签: perl syntax compiler-errors associative-array

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

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

1 个答案:

答案 0 :(得分:20)

简而言之 - 你在第一行错过了一个右括号

实际上这很有趣,因为您希望Perl将您指向正确的位置及其错误消息。然而,由于运气不好,这似乎就像一个完全有效的代码的开始,恰好发生了比你想要的更多的事情。

Perl实际上认为你查找了一个名为%word的哈希(使用$word{...}并将赋值的值评估为密钥)。
所以,如果你已经这样做了,这将是一个非常有效的代码:

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

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

时才会感到困惑