Very nice, concise overview. A couple of additional notes to keep in mind regarding here docs:
-
The end tag specifier must follow the << without any intermediate space.
If the end tag is quoted explicitly (with either single or double quotes), spaces may be present:
print << "ENDTAG"; # works
print << 'ENDTAG'; # works
print << ENDTAG; # syntax error!
-
Any leading spaces in the text of the here doc will be printed as such, which means using here docs in indented blocks gets messy:
Non-indented code block
print "printing here doc:\n";
print <<"ENDTAG";
This text has 0 leading spaces
This text has 4 leading spaces
ENDTAG
OUTPUT:
printing here doc:
This text has 0 leading spaces
This text has 4 leading spaces
Indented code block (same output as above)
{
print "printing here doc:\n";
print <<"ENDTAG";
This text has 0 leading spaces
This text has 4 leading spaces
ENDTAG
}
But, if the printed text includes leading whitespace, spaces can be included as part of the end tag to clean up the code block:
{
print "printing here doc:\n";
print <<" ENDTAG";
This text has 4 leading spaces
ENDTAG
}
OUTPUT:
printing here doc:
This text has 4 leading spaces
-
The Filter::Indent::HereDoc and Filter::HereDocIndent modules allow here docs to be used within indented code blocks without adding the leading whitespace from the indentation to the output.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|