Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames - Don't use labels that are
Contents
Acknowledgment
Randy Lauen for identifying the problem.
Affiliation
This Policy is part of the core Perl::Critic distribution.
Configuration
This Policy is not configurable except for the standard options.
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.40.0 2024-10-28 Perl::Critic::P...ecialBlockNames(3pm)
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.
Name
Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames - Don't use labels that are
the same as the special block names.
See Also
The Perl Buzz article on this issue at
<http://perlbuzz.com/2008/05/colons-invalidate-your-begin-and-end-blocks.html>.
