我试图在单个 Perl 脚本中排除对 Perl Critic 的 RequireRcsKeywords 的检查。我不想在 .perlcriticrc 中更改我的默认策略,所以我在源代码的顶部添加了一个“nocritic”行。尽管发生了这种变化,Perl Critic 仍然抱怨缺少 RCS 关键字。
这是我的测试用例(critictest.pl):
#!/usr/bin/perl
## no critic (RequireRcsKeywords)
use warnings;
use strict;
print "Hello, World.\n";
当我执行时,perlcritic -1 --verbose 8 critictest.pl
我得到以下输出:
[Miscellanea::RequireRcsKeywords] RCS keywords $Id$ not found at line 1, column 1. (Severity: 2)
[Miscellanea::RequireRcsKeywords] RCS keywords $Revision$, $HeadURL$, $Date$ not found at line 1, column 1. (Severity: 2)
[Miscellanea::RequireRcsKeywords] RCS keywords $Revision$, $Source$, $Date$ not found at line 1, column 1. (Severity: 2)
[Modules::RequireVersionVar] No package-scoped "$VERSION" variable found at line 1, column 1. (Severity: 2)
[Miscellanea::ProhibitUselessNoCritic] Useless '## no critic' annotation at line 2, column 1. (Severity: 2)
[InputOutput::RequireCheckedSyscalls] Return value of flagged function ignored - print at line 5, column 1. (Severity: 1)
我知道 Perl Critic 正在工作,因为如果我添加## no critic (RequireCheckedSyscalls)
,那么输出中的错误就会消失。我也尝试添加`## no critic (Miscellanea::RequireRcsKeywords)
,但这并没有引起任何变化。告诉 Perl Critic 忽略我文件中的 RequireRcsKeywords 策略而不必使用外部策略文件的正确方法是什么?
编辑:我正在使用 Perl 5.10.1、Perl Critic 1.108 和 Debian 6.0.3。