Provided by: libcriticism-perl_1.02-3_all bug

NAME

       criticism - Perl pragma to enforce coding standards and best-practices

SYNOPSIS

         use criticism;

         use criticism 'gentle';
         use criticism 'stern';
         use criticism 'harsh';
         use criticism 'cruel';
         use criticism 'brutal';

         use criticism ( -profile => '/foo/bar/perlcriticrc' );
         use criticism ( -severity => 3, -verbose => '%m at %f line %l' );

DESCRIPTION

       This pragma enforces coding standards and promotes best-practices by running your file
       through Perl::Critic before every execution.  In a production system, this usually isn't
       feasible because it adds a lot of overhead at start-up.  If you have a separate
       development environment, you can effectively bypass the "criticism" pragma by not
       installing Perl::Critic in the production environment.  If Perl::Critic can't be loaded,
       then "criticism" just fails silently.

       Alternatively, the "perlcritic" command-line (which is distributed with Perl::Critic) can
       be used to analyze your files on-demand and has some additional configuration features.
       And Test::Perl::Critic provides a nice interface for analyzing files during the build
       process.

       If you'd like to try Perl::Critic without installing anything, there is a web-service
       available at <http://perlcritic.com>.  The web-service does not yet support all the
       configuration features that are available in the native Perl::Critic API, but it should
       give you a good idea of what it does.  You can also invoke the perlcritic web-service from
       the command line by doing an HTTP-post, such as one of these:

         $> POST http://perlcritic.com/perl/critic.pl < MyModule.pm
         $> lwp-request -m POST http://perlcritic.com/perl/critic.pl < MyModule.pm
         $> wget -q -O - --post-file=MyModule.pm http://perlcritic.com/perl/critic.pl

       Please note that the perlcritic web-service is still alpha code.  The URL and interface to
       the service are subject to change.

CONFIGURATION

       If there is exactly one import argument, then it is taken to be a named equivalent to one
       of the numeric severity levels supported by Perl::Critic.  For example, "use criticism
       'gentle';" is equivalent to setting the "-severity => 5", which reports only the most
       dangerous violations.  On the other hand, "use criticism 'brutal';" is like setting the
       "-severity => 1", which reports every violation.  If there are no import arguments, then
       it defaults to 'gentle'.

       If there is more than one import argument, then they will all be passed directly into the
       Perl::Critic constructor.  So you can use whatever arguments are supported by
       Perl::Critic.

       The "criticism" pragma will also obey whatever configurations you have set in your
       .perlcriticrc file.  In particular, setting the "criticism-fatal" option to a true value
       will cause your program to immediately "die" if any Perl::Critic violations are found.
       Otherwise, violations are merely advisory.  This option can be set in the global section
       at the top of your .perlcriticrc file, like this:

         # Top of your .perlcriticrc file...
         criticism-fatal = 1

         # per-policy configurations follow...

       You can also pass "('-criticism-fatal' => 1)" as import arguments, just like any other
       Perl::Critic argument.  See "CONFIGURATION" in Perl::Critic for details on the other
       configuration options.

DIAGNOSTICS

       Usually, the "criticism" pragma fails silently if it cannot load Perl::Critic.  So by not
       installing Perl::Critic in your production environment, you can leave the "criticism"
       pragma in your production source code and it will still compile, but it won't be analyzed
       by Perl::Critic each time it runs.

       However, if you set the "DEBUG" environment variable to a true value or run your program
       under the Perl debugger, you will get a warning when "criticism" fails to load
       Perl::Critic.

NOTES

       The "criticism" pragma applies to the entire file, so it is not affected by scope or
       package boundaries and "use"-ing it multiple times will just cause it to repeatedly
       process the same file.  There isn't a reciprocal "no criticism" pragma.  However,
       Perl::Critic does support a pseudo-pragma that directs it to overlook certain lines or
       blocks of code.  See "BENDING THE RULES" in Perl::Critic for more details.

AUTHOR

       Jeffrey Ryan Thalhammer <thaljef@cpan.org>

COPYRIGHT

       Copyright (c) 2006-2007 Jeffrey Ryan Thalhammer.  All rights reserved.

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