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

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

Don't write " print \<\<'\_\_END\_\_' ".

## NAME

Perl::Critic::Policy::ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator - Don't write " print \<\<'\_\_END\_\_' ".

## AFFILIATION

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

## DESCRIPTION

Using one of Perl's special literals as a HEREDOC terminator could be confusing to tools that try to parse perl.

```
    print <<'__END__';           #not ok
    Hello world
    __END__
    print <<'__END_OF_WORLD__';  #ok
    Goodbye world!
    __END_OF_WORLD__
```

The special literals that this policy prohibits are:

- \_\_END\_\_

  - \_\_DATA\_\_

  - \_\_PACKAGE\_\_

  - \_\_FILE\_\_

  - \_\_LINE\_\_

  ## CONFIGURATION

This Policy is not configurable except for the standard options.

## SEE ALSO

Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator

Perl::Critic::Policy::ValuesAndExpressions::RequireQuotedHeredocTerminator

## AUTHOR

Kyle Hasselbacher \<kyle@cpan.org\>

## COPYRIGHT

Copyright (c) 2009-2011 Kyle Hasselbacher.

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.
