I'm not sure
[perldoc://__DATA__] -> [href://http://perldoc.perl.org/functions/__DATA__.html|__DATA__] -> [doc://perldata]#[doc://perldata#Special-Literals] __DATA__ -> __DATA__ -> perldata#Special Literals
Text after __DATA__ 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 line after __DATA__. The program should close DATA when it is done reading from it. (Leaving it open leaks filehandles if the module is reloaded for any reason, so it's a safer practice to close it.) For compatibility with older scripts written before __DATA__ was introduced, __END__ behaves like __DATA__ in the top level script (but not in files loaded with require or do) and leaves the remaining contents of the file accessible via main::DATA .