Perl::...usNames(3pm)

🌸 NAME 🌸

okay so bestie, this is the 3pm manual page for Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames β€” filed under User Contributed Perl Documentation, and the header/footer label is literally Perl::...usNames(3pm) (iconic truncation energy ✨). The policy is giving Don't use vague variable or subroutine names like last or record. πŸ’… No cap, that's the whole vibe.

🫢 AFFILIATION 🫢

This Policy is part of the core Perl::Critic distribution. periodt. πŸ’–

✨ DESCRIPTION ✨

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

This policy tests against a list of ambiguous words for variable names. lowkey straightforward, highkey useful.

πŸŽ€ 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. customization slay ✨

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

πŸ’€ 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. πŸ™ˆ not the false positive jump scare.

my $previous_record = $Foo::last;

πŸ‘‘ AUTHOR πŸ‘‘

Chris Dolan <cdolan@cpan.org>. author king behavior πŸ‘‘

Copyright (c) 2005-2011 Chris Dolan.

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.


cute sign-off time: the footer says perl v5.42.0, dated 2024-10-23, and the page label is Perl::...usNames(3pm). slay, go forth and name responsibly bestie πŸ¦‹πŸ’–πŸ‘‘

πŸ“¦ where this page comes from