Perlcritic 无法识别已整理的代码



我正在使用带有perltidy的perlcritic,并且在应用其他规则时,我收到以下错误消息:

Code is not tidy at line 1, near 'package MyPackage;'.

我已经运行了perltidy来整理代码,但我仍然遇到问题。在 .perlcriticrc 文件中,我添加了以下规则以及 .perltidyrc 文件的路径。

[CodeLayout::RequireTidyCode]
perltidyrc = /path/to/.perltidyrc

我像这样运行perlcritic:

perlcritic --profile .perlcriticrc file.pm

我确定 perlcritic 正在使用 rc 文件,因为我能够通过修改文件内容来打开和关闭规则。我也确信 perltidy 以相同的方式使用正确的 rc 文件。

如何在不禁用 RequireTidyCode 规则的情况下防止此错误?

我添加了一个示例来重现问题,方法是将实际文件减少到我仍然收到错误的最小值。这就是我运行它的方式:

cd /tmp
perltidy -b -nst TestCritic.pm
perlcritic --profile /tmp/.perlcriticrc /tmp/TestCritic.pm

注释器输出的第一行是:

Code is not tidy at line 1, near 'package TestCritic;'.

这些是文件:

TestCritic.pm

package TestCritic;
sub startup {
my $self = shift;
my $config;
my $service_name;
if ( defined $ENV{MYVAR} ) {
if ( $ENV{MYVAR} eq 'TESTVAL' ) {
$config       = { Config => { file => '/tmp/tmp.txt' } };
$service_name = 'TestCritic.' . $$;
}
}
}
1;

.perltidyrc

-pbp
-lp
-bar
-l=120
-nolc
-vmll
-cti=1
-pt=0
-vt=0
-vtc=0

.perlcriticrc

# Show all errors
severity = 1
verbose = 11
theme = core + pbp + bugs + maintenance + cosmetic + complexity + security + tests
exclude = Subroutines::ProhibitCallsToUndeclaredSubs

版本是: Perlcritic v1.132 珀尔蒂迪 v20181120

谢谢

把...

use strict;
use warnings;

。在文件的顶部,在包声明之前,那么你应该很好。

针对 perlcritic v1.130 进行测试

相关内容

  • 没有找到相关文章

最新更新