- Renamed -Policy option to -include. Added -exclude to give the
opposite effect.
- Refactored constructor of Perl::Critic. Now, most of the work
is delegated to Perl::Critic::Config. I'm not sure I like how
this turned out, but we'll see how it goes.
- Renamed some Policy modules to be a bit more comprehensible. Note
that you may need to change your .perlcriticrc file accordingly.
I also suggest removing your current Perl::Critic installation
before installing this one.
- Improved error message when Perl::Critic dies because PPI can't
parse the input code.
- Changed output of -help to be more terse.
- Added -Policy option to perlcritic. The idea is to provide a
compact interface for selecting Policy modules at the command-line.
This feature is experimental and subject to change.
- Added a warning message if -verbose value looks strange. In most
applications, the -verbose option does not require a value, so people
might be puzzled when they write 'perlcritic -verbose my_file.pm' and
nothing seems to happen.
- Command-line options to perlcritic are now case-sensitive. This
makes it easier to abbreviate options that start with the same letters
(e.g. 'Version' and 'verbose')
- Fixed the new Policy modules that were misnamed and misplaced in the
previous distribution.
- Rewrote some of the ControlStructures and BuiltinFunction
policies to be simpler (and probably a little faster).
- Edited POD. Fixed some typos. Added PREREQUISITES section
to Perl::Critic documentation.
- Fixed the -verbose FORMAT option so that you can put metachars
in the FORMAT specification. If using perlcritic, be careful to
protect them from getting munged by the shell first.
- Replaced ProhibitRequireStatements with RequireBarewordIncludes
module. Courtesy of Chris Dolan cdolan@cpan.org
- Added configuration to ProhibitInterpolationOfLiterals so that
certain flavors of quotes can be exempt. This is for folks who
have configured their editor to use special syntax highlighting
for certain kinds of strings (SQL, for example).
- perlcritic now accepts multiple file arguments, so now you can
critique your entire distribution in one shot. As a result, the
output-formats have changed slightly.
[New Policies]
- BuiltinFunctions::ProhibitLvalueSubstr
- BuiltinFunctions::ProhibitSleepViaSelect
- ClassHierarchies::ProhibitOneArgBless
- CodeLayout::RequireTrailingCommas
- CodeLayout::RequireQuotedWordLists
- InputOutput::ProhibitTwoArgOpen
- InputOutput::ProhibitOneArgSelect
- InputOutput::ProhibitBarewordFileHandles
- Miscellanea::RequireRcsKeywords
- Modules::RequireVersionVar
- RegularExpressions::RequireExtendedFormatting
- RegularExpressions::RequireLineBoundaryMatching
[Name Changes]
- ProhibitUnpackagedCode => RequireExplicitPackage
- RequireQuotedWords => ProhibitQuotedWordLists
[Bug Fixes]
14923: 'require' is now permitted. See RequireBarewordIncludes.
15022: Fixed false-positives when keywords are used as hash keys.
15023: Fixed spurious Violations by removing magic shebang.
15031: Fixed spelling mistakes (and probably added some new ones).
15233: Postfix 'if' is now allowed with 'die', 'croak', etc.