Perl-Critic
Perl-Critic copied to clipboard
Specifying verbose in .perlcriticrc does bizarre things
% mkdir x
% cd x
% echo 'verbose = "%f:%l:%c:%m [%p] (%e)\n"' >.perlcriticrc
% touch y
% perlcritic --brutal y
Operator or semicolon missing before %f at (eval 68) line 1.
Ambiguous use of % resolved as operator % at (eval 68) line 1.
Backslash found where operator expected at (eval 68) line 1, near ")\"
(Missing operator before \?)
String found where operator expected at (eval 68) line 1, near "n"""
Fatal error while critiquing "y": Bareword "f" not allowed while "strict subs" in use at (eval 68) line 1.
syntax error at (eval 68) line 1, near "f:"
Global symbol "%l" requires explicit package name (did you forget to declare "my %l"?) at (eval 68) line 1.
Global symbol "%c" requires explicit package name (did you forget to declare "my %c"?) at (eval 68) line 1.
Global symbol "%m" requires explicit package name (did you forget to declare "my %m"?) at (eval 68) line 1.
Global symbol "%p" requires explicit package name (did you forget to declare "my %p"?) at (eval 68) line 1.
Global symbol "%e" requires explicit package name (did you forget to declare "my %e"?) at (eval 68) line 1.
at /usr/share/perl5/vendor_perl/Perl/Critic/Utils.pm line 331.
Perl::Critic::Utils::interpolate("\"%f:%l:%c:%m [%p] (%e)\\n\"") called at /usr/share/perl5/vendor_perl/Perl/Critic/Utils.pm line 1041
Perl::Critic::Utils::verbosity_to_format("\"%f:%l:%c:%m [%p] (%e)\\n\"") called at /usr/share/perl5/vendor_perl/Perl/Critic/Command.pm line 311
Perl::Critic::Command::_render_report("y", HASH(0x55b85e725040), Perl::Critic::Violation=HASH(0x55b86194ef38)) called at /usr/share/perl5/vendor_perl/Perl/Critic/Command.pm line 243
eval {...} called at /usr/share/perl5/vendor_perl/Perl/Critic/Command.pm line 248
Perl::Critic::Command::_critique(HASH(0x55b85e725040), "y") called at /usr/share/perl5/vendor_perl/Perl/Critic/Command.pm line 64
Perl::Critic::Command::run() called at /usr/bin/perlcritic line 20
This with 1.150. I had expected to specify verbose
in the file in the same way as it would be given on the command line.