Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perlcritic:不验证语法_Perl - Fatal编程技术网

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