---
name: "Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters"
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::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters"
---

# Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters(3pm)

Don't use quotes ("'", """, "\`") as delimiters for the quote-like operators.

## NAME

Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters - Don't use quotes ("'", """, "\`") as delimiters for the quote-like operators.

## AFFILIATION

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

## DESCRIPTION

With the obvious exception of using single-quotes to prevent interpolation, using quotes with the quote-like operators kind of defeats the purpose of them and produces obfuscated code, causing problems for future maintainers and their editors/IDEs.

```
    $x = q"q";                #not ok
    $x = q'q';                #not ok
    $x = q`q`;                #not ok
    $x = qq"q";               #not ok
    $x = qr"r";               #not ok
    $x = qw"w";               #not ok
    $x = qx`date`;            #not ok
    $x =~ m"m";               #not ok
    $x =~ s"s"x";             #not ok
    $x =~ tr"t"r";            #not ok
    $x =~ y"x"y";             #not ok
    $x =~ m'$x';              #ok
    $x =~ s'$x'y';            #ok
    $x = qr'$x'm;             #ok
    $x = qx'finger foo@bar';  #ok
```

## CONFIGURATION

This policy has three options: `"single_quote_allowed_operators"`, `"double_quote_allowed_operators"`, and `"back_quote_allowed_operators"`, which control which operators are allowed to use each of `"'"`, `"""`, ``"`"`` as delimiters, respectively.

The values allowed for these options are a whitespace delimited selection of the `"m"`, `"q"`, `"qq"`, `"qr"`, `"qw"`, `"qx"`, `"s"`, `"tr"`, and `"y"` operators.

By default, double quotes and back quotes (backticks) are not allowed as delimiters for any operators and single quotes are allowed as delimiters for the `"m"`, `"qr"`, `"qx"`, and `"s"` operators.  These defaults are equivalent to having the following in your *.perlcriticrc*:

```
    [ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters]
    single_quote_allowed_operators = m s qr qx
    double_quote_allowed_operators =
    back_quote_allowed_operators =
```

## SUGGESTED BY

Michael Schwern

## AUTHOR

Elliot Shank `"<perl@galumph.com>"`

## COPYRIGHT

Copyright (c) 2007-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.
