---
name: "Perl::Critic::Policy::Community::DollarAB"
section: "3pm"
platform: "linux"
package: "libperl-critic-community-perl"
version: "1.0.4-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Perl::Critic::Policy::Community::DollarAB"
---

# Perl::Critic::Policy::Community::DollarAB(3pm)

Don't use $a or $b as variable names outside sort

## NAME

Perl::Critic::Policy::Community::DollarAB - Don't use $a or $b as variable names outside sort

## DESCRIPTION

The special variables `$a` and `$b` are reserved for `sort()` and similar functions which assign to them to iterate over pairs of values. These are global variables, and declaring them as lexical variables with `"my"` to use them outside this context can break usage of these functions. Use different names for your variables.

```
  my $a = 1;                  # not ok
  my $abc = 1;                # ok
  sort { $a <=> $b } (3,2,1); # ok
```

## AFFILIATION

This policy is part of Perl::Critic::Community.

## CONFIGURATION

This policy can be configured to allow `$a` and `$b` in additional functions, by putting an entry in a `".perlcriticrc"` file like this:

```
  [Community::DollarAB]
  extra_pair_functions = pairfoo pairbar
```

## AUTHOR

Dan Book, `"dbook@cpan.org"`

## COPYRIGHT AND LICENSE

Copyright 2015, Dan Book.

This library is free software; you may redistribute it and/or modify it under the terms of the Artistic License version 2.0.

## SEE ALSO

Perl::Critic
