Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames.3pm

Langue: en

Version: 2009-02-26 (fedora - 05/07/09)

Section: 3 (Bibliothèques de fonctions)

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

<Perl Buzz article> on this issue.

ACKNOWLEDGMENT

Randy Lauen for identifying the problem.

AUTHOR

Mike O'Regan Copyright (c) 2008 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.