---
name: "Perl::Critic::Policy::Documentation::RequirePodAtEnd"
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::Documentation::RequirePodAtEnd"
---

# Perl::Critic::Policy::Documentation::RequirePodAtEnd(3pm)

All POD should be after "\_\_END\_\_".

## NAME

Perl::Critic::Policy::Documentation::RequirePodAtEnd - All POD should be after "\_\_END\_\_".

## AFFILIATION

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

## DESCRIPTION

Perl stops processing code when it sees an `"__END__"` statement.  So, to save processing time, it's faster to put documentation after the `"__END__"`.  Also, writing all the POD in one place usually leads to a more cohesive document, rather than being forced to follow the layout of your code.  This policy issues violations if any POD is found before an `"__END__"`.

## CONFIGURATION

This Policy is not configurable except for the standard options.

## NOTES

Some folks like to use `"=for"`, and `"=begin"`, and `"=end"` tags to create block comments in-line with their code.  Since those tags aren't usually part of the documentation, this Policy does allows them to appear before the `"__END__"` statement.

```
    =begin comments
    frobulate()
    Accepts:  A list of things to frobulate
    Returns:  True if successful
    =end comments
    sub frobulate { ... }
```

## AUTHOR

Chris Dolan \<cdolan@cpan.org\>

## COPYRIGHT

Copyright (c) 2006-2011 Chris Dolan.

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
