Risk-Aware AI Code Review for Business-Critical Systems
LiveReview LiveReview Explore LiveReview

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