---
name: "Perl::Critic::Policy::RegularExpressions::ProhibitUselessTopic"
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::RegularExpressions::ProhibitUselessTopic"
---

# Perl::Critic::Policy::RegularExpressions::ProhibitUselessTopic(3pm)

Don't use $\_ to match against regexes.

## NAME

Perl::Critic::Policy::RegularExpressions::ProhibitUselessTopic - Don't use $\_ to match against regexes.

## AFFILIATION

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

## DESCRIPTION

It is not necessary to specify the topic variable `$_` when matching against a regular expression.

Match or substitution operations are performed against variables, such as:

```
    $x =~ /foo/;
    $x =~ s/foo/bar/;
    $x =~ tr/a-mn-z/n-za-m/;
```

If a variable is not specified, the match is against `$_`.

```
    # These are identical.
    /foo/;
    $_ =~ /foo/;
    # These are identical.
    s/foo/bar/;
    $_ =~ s/foo/bar/;
    # These are identical.
    tr/a-mn-z/n-za-m/;
    $_ =~ tr/a-mn-z/n-za-m/;
```

This applies to negative matching as well.

```
    # These are identical
    if ( $_ !~ /DEBUG/ ) { ...
    if ( !/DEBUG ) { ...
```

Including the `"$_ =~"` or `"$_ !~"` is unnecessary, adds complexity, and is not idiomatic Perl.

## CONFIGURATION

This Policy is not configurable except for the standard options.

## AUTHOR

Andy Lester \<andy@petdance.com\>

## COPYRIGHT

Copyright (c) 2013-2023 Andy Lester \<andy@petdance.com\>

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