---
name: "Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish"
section: "3pm"
platform: "linux"
package: "perl-perl-critic"
version: "1.156-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish"
---

# Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish(3pm)

"use English" must be passed a "-no\_match\_vars" argument.

## 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

Copyright (c) 2008-2011 Elliot Shank.

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.
