Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames(3pm)

Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames3pm

Don't use vague variable or subroutine names like 'last' or 'record'.

Affiliation

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

Overview

Conway lists a collection of English words which are highly ambiguous as variable or subroutine names. For example, $last can mean previous or final.

This policy tests against a list of ambiguous words for variable names.

Configuration

The default list of forbidden words is:

    abstract bases close contract last left no record right second set

This list can be changed by giving a value for "forbid" of a series of forbidden words separated by spaces.

For example, if you decide that "bases" is an OK name for variables (e.g. in bioinformatics), then put something like the following in "$HOME/.perlcriticrc":

    [NamingConventions::ProhibitAmbiguousNames]
    forbid = last set left right no abstract contract record second close

Releases

10 releases since Debian 5.0 (Lenny); the text changed 9 times.

  1. 5.0
  2. 6.0
  3. 7
  4. 8
  5. 9
  6. 10
  7. 11
  8. 12
  9. 13
  10. Arch

Bugs

Currently this policy checks the entire variable and subroutine name, not parts of the name. For example, it catches $last but not $last_record. Hopefully future versions will catch both cases.

Some variable statements will be false positives if they have assignments where the right hand side uses forbidden names. For example, in this case the "last" incorrectly triggers a violation.

    my $previous_record = $Foo::last;

Author

Chris Dolan <[email protected]>

From perl-perl-critic 1.156-3 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.