logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Affiliation

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

Author

       Elliot Shank "<perl@galumph.com>"

Configuration

       This Policy is not configurable except for the standard options.

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.

Name

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

See Also