Provided by: libperl-critic-perl_1.121-1_all bug

NAME

       Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames - Don't use
       labels that are the same as the special block names.

AFFILIATION

       This Policy is part of the core Perl::Critic distribution.

DESCRIPTION

       When using one of the special Perl blocks "BEGIN", "END", "CHECK", "INIT", and
       "UNITCHECK", it is easy to mistakenly add a colon to the end of the block name.  E.g.:

           # a BEGIN block that gets executed at compile time.
           BEGIN { <...code...> }

           # an ordinary labeled block that gets executed at run time.
           BEGIN: { <...code...> }

       The labels "BEGIN:", "END:", etc. are probably errors.  This policy prohibits the special
       Perl block names from being used as labels.

CONFIGURATION

       This Policy is not configurable except for the standard options.

SEE ALSO

       The Perl Buzz article on this issue at
       <http://perlbuzz.com/2008/05/colons-invalidate-your-begin-and-end-blocks.html>.

ACKNOWLEDGMENT

       Randy Lauen for identifying the problem.

AUTHOR

       Mike O'Regan

COPYRIGHT

       Copyright (c) 2008-2011 Mike O'Regan.  All rights reserved.

       This program is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

perl v5.18.1    Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames(3pm)