perlcritic:不验证语法
例如,我注意到perlcritic:不验证语法,perl,Perl,例如,我注意到perlcritic(Perl::Critic)似乎并不关心if语句中不匹配的参数。但它似乎确实关心(在较低的严重性设置下)很多事情 对我来说,如果它甚至不能告诉我我有一个简单的语法问题,比如不匹配的paren,那么它似乎是无用的。它就是这样设计的吗 是的,Perl::Critic就是这样工作的 我不确定它是否是以这种方式显式设计的,但编译Perl代码非常简单,甚至没有考虑过。如果需要设置任何库路径或诸如此类的内容,它也不知道如何构建Perl代码,这样会增加额外的配置复杂性。此外,
perlcritic
(Perl::Critic
)似乎并不关心if
语句中不匹配的参数。但它似乎确实关心(在较低的严重性设置下)很多事情
对我来说,如果它甚至不能告诉我我有一个简单的语法问题,比如不匹配的paren,那么它似乎是无用的。它就是这样设计的吗 是的,Perl::Critic就是这样工作的 我不确定它是否是以这种方式显式设计的,但编译Perl代码非常简单,甚至没有考虑过。如果需要设置任何库路径或诸如此类的内容,它也不知道如何构建Perl代码,这样会增加额外的配置复杂性。此外,编译Perl代码可以执行Perl代码,因此它会成为一个安全问题 但是,它不能在未编译的代码上正确运行。因此,最好在linting之前编译代码
对于语法检查,可以使用
perl-c
。要进行更系统的检查,可以使用编写测试。将其放入t/00compile.t
。然后可以使用测试代码是否违反标准。将其放入t/00critic.t
中,它将在编译检查后运行。perl-cscript.pl
将运行语法检查。不确定为什么Perl::Critic
会重复这一点。Perl-c
可以通知您语法问题perlcritic
是一个lint程序,而不是编译器。perl-c
有一个“”开头,假设您给它一个可编译的程序。perl-c…
选项是一个好主意。另一个可以彻底消除配对不匹配的技巧是perltidy
。FWIW:我的编辑器被设置为在我暂停一段时间时同时运行perl-c…
和perl::Critic
。