1

作为一个 Perl 初学者,我有时会遇到编译错误,必须进行大量搜索才能找到它。最后,它只是一行末尾缺少的分号。Perl 会检查一些缺少分号的语法错误,但通常不会检查。有没有办法得到这张支票?

编辑:

我知道 Perl::Critic 但不能在 atm 使用它。而且我不知道它是否会检查是否缺少分号。

4

3 回答 3

2

因为分号在 Perl 中实际上意味着某些东西并且不仅仅是为了装饰,所以任何工具(甚至 Perl 解释器本身)都不可能在每种情况下都知道您是否真的打算省略分号。因此,您的问题没有一般情况的答案;你只需要检查你的代码并确保它是正确的。

正如我在评论中提到的,您可以使用编辑器尝试各种技巧来加快查找可能不正确的行的过程;但是,您必须手动检查和修复这些问题,否则可能会引入新问题。

于 2013-07-31T08:03:25.883 回答
1

语法检查是perl -c,但这与尝试直接运行程序没有什么不同。由于其灵活/不确定的语法,通常不能做你想做的事。这就是舒适和表现力的缺点。

升级到最新的稳定 Perl,解析器的错误消息在过去几年中变得更好/更准确,并且可以正确识别缺少分号的许多情况。

适用于许多解析器/其他语言的经验法则:如果错误没有意义,请先查看几行。

于 2013-07-31T08:05:08.830 回答
1

use diagnostics;通常会给你一个很好的提示,与use warnings;. 尽量保持一致的编码风格,检查perlstyle。你也可以使用Perl::Critic online

同样作为一般建议学习如何使用包和模块,尝试将代码分组到 subs 并研究数组、列表和哈希的语法。一个常见的错误是忘记了;匿名 hashref 赋值之后:

my $hashref = { a => 5, b => 10};
于 2013-07-31T08:14:07.960 回答