作为一个 Perl 初学者,我有时会遇到编译错误,必须进行大量搜索才能找到它。最后,它只是一行末尾缺少的分号。Perl 会检查一些缺少分号的语法错误,但通常不会检查。有没有办法得到这张支票?
编辑:
我知道 Perl::Critic 但不能在 atm 使用它。而且我不知道它是否会检查是否缺少分号。
作为一个 Perl 初学者,我有时会遇到编译错误,必须进行大量搜索才能找到它。最后,它只是一行末尾缺少的分号。Perl 会检查一些缺少分号的语法错误,但通常不会检查。有没有办法得到这张支票?
编辑:
我知道 Perl::Critic 但不能在 atm 使用它。而且我不知道它是否会检查是否缺少分号。
因为分号在 Perl 中实际上意味着某些东西并且不仅仅是为了装饰,所以任何工具(甚至 Perl 解释器本身)都不可能在每种情况下都知道您是否真的打算省略分号。因此,您的问题没有一般情况的答案;你只需要检查你的代码并确保它是正确的。
正如我在评论中提到的,您可以使用编辑器尝试各种技巧来加快查找可能不正确的行的过程;但是,您必须手动检查和修复这些问题,否则可能会引入新问题。
语法检查是perl -c
,但这与尝试直接运行程序没有什么不同。由于其灵活/不确定的语法,通常不能做你想做的事。这就是舒适和表现力的缺点。
升级到最新的稳定 Perl,解析器的错误消息在过去几年中变得更好/更准确,并且可以正确识别缺少分号的许多情况。
适用于许多解析器/其他语言的经验法则:如果错误没有意义,请先查看几行。
use diagnostics;
通常会给你一个很好的提示,与use warnings;
. 尽量保持一致的编码风格,检查perlstyle。你也可以使用Perl::Critic online。
同样作为一般建议学习如何使用包和模块,尝试将代码分组到 subs 并研究数组、列表和哈希的语法。一个常见的错误是忘记了;
匿名 hashref 赋值之后:
my $hashref = { a => 5, b => 10};