The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Perl::Critic::Mardem - Perl-Critic policies for isolated Refactoring-Support.

VERSION

Version 0.06

DESCRIPTION

This Perl-Critic Policy-Modules should help where to start a safe refactoring in old legacy Perl code.

The McCabe complexity check within the standard Perl-Critic Module are a good overall starting point see:

but these are for some bigger scans, so these new policies should check (or begin) in smaller chunks:

Perl::Critic::Policy::Mardem::ProhibitBlockComplexity

code block complexity "{...}"

Perl::Critic::Policy::Mardem::ProhibitConditionComplexity

condition complexity "if/while/for/... (...){}"

Perl::Critic::Policy::Mardem::ProhibitFileSize

large files as byte or char count

Perl::Critic::Policy::Mardem::ProhibitLargeBlock

large code block as statement count "{...}"

Perl::Critic::Policy::Mardem::ProhibitLargeFile

large files as line count

Perl::Critic::Policy::Mardem::ProhibitLargeSub

large subs as statement count

Perl::Critic::Policy::Mardem::ProhibitManyConditionsInSub

subs has many conditionals "if, while, for, ..."

Perl::Critic::Policy::Mardem::ProhibitReturnBooleanAsInt

return boolean as int "return 1;"

AFFILIATION

This module has no functionality, but instead contains documentation for this distribution and acts as a means of pulling other modules into a bundle. All of the Policy modules contained herein will have an "AFFILIATION" section announcing their participation in this grouping.

BUG REPORTS

Please report bugs on GitHub.

The source code repository can be found at https://github.com/mardem1/perl-critic-mardem

AUTHOR

Markus Demml, mardem@cpan.com

LICENSE AND COPYRIGHT

Copyright (c) 2024, Markus Demml

This library is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. The full text of this license can be found in the LICENSE file included with this module.

DISCLAIMER

This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.