http://www.perlmonks.org?node_id=1174746


in reply to Re^4: heredoc and carriers return
in thread heredoc and Carriage return

Read http://perldoc.perl.org/perldata.html#Special-Literals, and Super Search for __DATA__ to find more details.

In short, you add __DATA__ as a line by itself at the end of your script, and everything after that in your script is treated as a special file which you can access through the handle DATA; like STDIN and STDOUT, it's already available, and you don't even have to open(DATA, ...) yourself. To get it to do what you want (maintain the distinct CR and LF from the Win32 EOL), you will need to binmode DATA; before you read from the DATA filehandle, just like you would if it were an external file.

__DATA__ is pretty cool. Make sure you read up on it -- there are lots of cool __DATA__ tricks lurking in the Monastery.