我将perlcritic与perltidy一起使用,并且在应用其他规则时,出现以下错误消息:
Code is not tidy at line 1, near 'package MyPackage;'.
我已经精打细算地整理了代码,但仍然遇到问题。在.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测试
关于perl - Perlcritic无法识别整理过的代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55851371/