Changes for version 0.028 - 2018-11-29

  • Split out lower severity violations from DiscouragedModules policy into a new PreferredAlternatives policy. Perl::Critic does not support filtering individual violations by severity, only policies, so this will allow separately configuring and filtering these violations.
  • Fixed DiscouragedModules and DeprecatedFeatures policy violations to report severity as configured.
  • Fixed DeprecatedFeatures to avoid false positives on method calls with the same name as autoderef functions.
  • Added /\C/, chdir(''), and bare here-docs to DeprecatedFeatures policy.

Modules

Perl::Critic policies inspired by #perl on freenode IRC
Utility functions for the Freenode policy set
Don't use & to call subroutines
Don't assign an anonymous arrayref to an array
Don't use bareword filehandles other than built-ins
Don't declare variables conditionally
Don't end a subroutine with a conditional block
Avoid features that have been deprecated or removed from Perl
Various modules discouraged from use
Don't use $a or $b as variable names outside sort
Don't use each to iterate through a hash
Don't use return with no arguments
Don't use mod_perl to write web applications
Always use the three-argument form of open
Don't use overload without specifying a bool overload and enabling fallback
Don't use POSIX without specifying an import list
Module files should declare a package matching the filename
Various modules with preferred alternatives
Don't use function prototypes
Always use strict and warnings, or a module that imports these
Interpreter-based threads are officially discouraged
Don't write context-sensitive functions using wantarray
Scripts should not use the -w switch on the shebang line
Don't use while with implicit assignment to $_