I’ve just released a new official release of Perl::Critic, the static code analysis tool for Perl. It uses the new version of the PPI Perl-parsing module, and it works with the new Perl 5.26, which does not include . in @INC by default.
If you’ve never used Perl::Critic to analyze your code base for potential bugs and stylistic improvements, mostly based on Damian Conway’s Perl Best Practices, try it out.
Here’s the changelog:
[Bug Fixes] * PPI misparsing a module caused an incorrect "Must end with a recognizable true value." This is fixed by upgrading to PPI 1.224. (GH #696, GH #607) * A test would fail under the upcoming Perl 5.26 that omits the current directory from @INC. Thanks, Kent Fredric. * Fixed an invalid test in the RequireBarewordsIncludes test. Thanks, Christian Walde. (GH #751) * If an element contained blank lines then the source "%r" displayed for a violation was wrong. Thanks, Sawyer X. (GH #702, #734) [Dependencies] Perl::Critic now requires PPI 1.224. PPI is the underlying Perl parser on which Perl::Critic is built, and 1.224 introduces many parsing fixes such as: * Fixes for dot-in-@INC. * Parse left side of => as bareword even if it looks like a keyword or op. * $::x now works. * Higher accuracy when deciding whether certain characters are operators or variable type casts (*&% etc.). * Subroutine attributes parsed correctly. [Performance Enhancements] * Sped up BuiltinFunctions::ProhibitUselessTopic ~7%. Thanks, James Raspass. (GH #656) [Documentation] * Fixed incorrect explanation of capture variables in ProhibitCaptureWithoutTest. Thanks, Felipe Gasper. * Fixed incorrect links. Thanks, Glenn Fowler. * Fixed incorrect example for returning a sorted list. Thanks, @daviding58. * Fixed invalid POD. Thanks, Jakub Wilk. (GH #735) * Updated docs on ProhibitYadaOperator. Thanks, Stuart A Johnston. (GH #662) * Removed all the references to the old mailing list and code repository at tigris.org. (GH #757)