Skip to end of metadata
Go to start of metadata

Perl::Critic::logicLAB

- collection of Perl::Critic policies developed and maintained by logicLAB

Latest Blog Posts

Blog Posts

Documentation

Perl::Critic::logicLAB is not following the conventional way of distributing policies (See: Motivation). For now this is an experiment. So the actual implementation might change at later time.

The distribution is actually just a Bundle/Task, so it contains no code and no actual policies, please refer to the policies listed below for documentation on the actual policies.

Implemented Policies

Candidates for Inclusion

Ideas for Policies

Dependencies

Motivation

Perl::Critic is one of the really good Perl tools. One you should have in your toolbox. One of the major forces is the plug-ability. You can use other people's policies or you can write your own.

I have over time had several ideas for policies, some are still on the drawing board and others have been implemented.

The concept policies is that they will come and go, a policy you use one day, you disable the other and vice-versa. Perl::Critic's versatile nature supports how you evolve as a Perl programmer and how your code base, team and organization evolves.

So Perl::Critic::logicLAB is not a distribution of policies, it is more of a meta-package, defining references to policies currently developed and maintained by logicLAB.

This is not the recommended way of doing things, but it does offer the following benefits:

  1. I can release the policies separately
  2. I can release policies without listing them in Perl::Critic::logicLAB until I am certain of their value and correctness
  3. Other people can write meta-packages, listing there policies on a policy by policy level, using the same schema

The only issue speaking against it, is the case of adding a brand new policy requires two releases. One of the policy distribution and one of Perl::Critic::Policy bundling the policy, but the it seems to be pretty outweighed by the positive aspects of using the meta approach using the Task scheme.