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