#!/usr/local/bin/perl -w
my $Price = 'right';
print <<"EOF";
The price is $Price.
EOF
The terminating string does not have to be quoted. For example, the
previous example could have been written as:
#!/usr/local/bin/perl -w
my $Price = 'right';
print <<EOF;
The price is $Price.
EOF
You can assign here documents to a string:
my $assign_this_heredoc =<< "EOS";
This string is assigned to $whatever.
EOS
You can use a here document to execute commands:
#!/usr/local/bin/perl -w
print <<`CMD`;
ls -l
CMD
You can stack here documents:
#!/usr/local/bin/perl -w
print <<"joe", <<"momma"; # You can stack them
I said foo.
joe
I said bar.
momma
One caveat about here documents: you may have noticed in each of
these examples that the quoted text is always left-justified.
That's because any whitespace used for indentation
will be included in the string. For example:
#!/usr/local/bin/perl -w
print <<" INDENTED";
Same old, same old.
INDENTED
Although you can use a trick of including whitespace in the
terminating tag to keep it indented (as we did here), the string
itself will have the whitespace embedded—in this case, it will
be Same old, same old..