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


in reply to Indented HEREDOC?

Since this thread was my top-hit in google (YMMV):

Intended Here Documents were introduced with 5.26.

Indented Here-documents

This adds a new modifier "~" to here-docs that tells the parser that it should look for /^\s*$DELIM\n/ as the closing delimiter.

These syntaxes are all supported:

<<~EOF; <<~\EOF; <<~'EOF'; <<~"EOF"; <<~`EOF`; <<~ 'EOF'; <<~ "EOF"; <<~ `EOF`;

The "~" modifier will strip, from each line in the here-doc, the same whitespace that appears before the delimiter.

Newlines will be copied as-is, and lines that don't include the proper beginning whitespace will cause perl to croak.

For example:

if (1) { print <<~EOF; Hello there EOF }

prints "Hello there\n" with no leading whitespace.

Probably my favourite improvement since // defined-or.

Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Wikisyntax for the Monastery