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

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

Always use single quotes for literal strings.

## NAME

Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals - Always use single quotes for literal strings.

## AFFILIATION

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

## DESCRIPTION

Don't use double-quotes or `"qq//"` if your string doesn't require interpolation.  This saves the interpreter a bit of work and it lets the reader know that you really did intend the string to be literal.

```
    print "foobar";     #not ok
    print 'foobar';     #ok
    print qq/foobar/;   #not ok
    print q/foobar/;    #ok
    print "$foobar";    #ok
    print "foobar\n";   #ok
    print qq/$foobar/;  #ok
    print qq/foobar\n/; #ok
    print qq{$foobar};  #preferred
    print qq{foobar\n}; #preferred
```

Use of double-quotes might be reasonable if the string contains single quote (') characters:

```
    print "it's me";    # ok, if configuration flag set
```

## CONFIGURATION

The types of quoting styles to exempt from this policy can be configured via the `"allow"` option.  This must be a whitespace-delimited combination of some or all of the following styles: `"qq{}"`, `qq()`, `"qq[]"`, and `"qq//"`.

This is useful because some folks have configured their editor to apply special syntax highlighting within certain styles of quotes. For example, you can tweak `"vim"` to use SQL highlighting for everything that appears within `"qq{}"` or `"qq[]"` quotes.  But if those strings are literal, Perl::Critic will complain.  To prevent this, put the following in your *.perlcriticrc* file:

```
    [ValuesAndExpressions::ProhibitInterpolationOfLiterals]
    allow = qq{} qq[]
```

The flag `"allow_if_string_contains_single_quote"` permits double-quoted strings if the string contains a single quote (') character.  It defaults to off; to turn it on put the following in your *.perlcriticrc* file:

```
    [ValuesAndExpressions::ProhibitInterpolationOfLiterals]
    allow_if_string_contains_single_quote = 1
```

## SEE ALSO

Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars

## AUTHOR

Jeffrey Ryan Thalhammer \<jeff@imaginative-software.com\>

## COPYRIGHT

Copyright (c) 2005-2021 Imaginative Software Systems.  All rights reserved.

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.
