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

gmpassos has asked for the wisdom of the Perl Monks concerning the following question:

I was looking for a way to use the here-document (<<DELIMITER;) to set some data section in the class.

But this sections need to be exactly as they where declared, soo, if some variable exists there can't be parsed.

Soo, this data:

$data = <<DATAFOO; bla bla bla $globalvar DATAFOO print "$data\n" ;
prints:
bla bla bla
But I need that:
bla bla bla $globalvar

Looking at perldoc I found

## From perldiag: =item Use of bare << to mean <<"" is deprecated (D deprecated) You are now encouraged to use the explicitly quoted form if you wish to use an empty line as the terminator of the here-document. ## From perlop Customary Generic Meaning Interpolates '' q{} Literal no "" qq{} Literal yes `` qx{} Command yes* qw{} Word list no // m{} Pattern match yes* qr{} Pattern yes* s{}{} Substitution yes* tr{}{} Transliteration no (but see below) <<EOF here-doc yes* * unless the delimiter is ''.

Soo, testing some codes I saw that is possible to write that:

$data = <<'DATAFOO'; bla bla bla $globalvar DATAFOO print "$data\n" ;
And the output is:
bla bla bla $globalvar

OK, I found what I want. But the use of <<'DELIMITER'; is right/maintained? It works, but I never saw that and is not well documented, or I'm the only one that doesn't know that?

Graciliano M. P.
"Creativity is the expression of the liberty".