Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish.3pm

Langue: en

Version: 2010-09-08 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish - "use English" must be passed a "-no_match_vars" argument.

AFFILIATION

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

DESCRIPTION

Due to unfortunate history, if you use the English module but don't pass in a "-no_match_vars" argument, all regular expressions in the entire program, not merely the module in question, suffer a significant performance penalty, even if you only import a subset of the variables.
     use English;                              # not ok
     use English '-no_match_vars';             # ok
     use English qw< $ERRNO -no_match_vars >;  # ok
     use English qw($OS_ERROR);                # not ok
 
 

In the last example above, while the match variables aren't loaded into your namespace, they are still created in the "English" namespace and you still pay the cost.

CONFIGURATION

This Policy is not configurable except for the standard options.

AUTHOR

Elliot Shank "<perl@galumph.com>" Copyright (c) 2008-2009 Elliot Shank. 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.