From perldata:
The two control characters ^D and ^Z, and the tokens
__END__ and __DATA__ may be used to indicate the logical
end of the script before the actual end of file. Any
following text is ignored.
Text after __DATA__ but may be read via the filehandle
"PACKNAME::DATA", where "PACKNAME" is the package that was
current when the __DATA__ token was encountered. The
filehandle is left open pointing to the contents after
__DATA__. It is the program's responsibility to "close
DATA" when it is done reading from it. For compatibility
with older scripts written before __DATA__ was introduced,
__END__ behaves like __DATA__ in the toplevel script (but
not in files loaded with "require" or "do") and leaves the
remaining contents of the file accessible via
"main::DATA".
See SelfLoader for more description of __DATA__, and an
example of its use. Note that you cannot read from the
DATA filehandle in a BEGIN block: the BEGIN block is
executed as soon as it is seen (during compilation), at
which point the corresponding __DATA__ (or __END__) token
has not yet been seen.
After Compline,
Zaxo