Hi, Apologies if I'm bringing up a repeated topic.   I searched the list
archive and the web and nothing specific has turned up so far.

Is there a way to defer evaluation of the contents of a here-doc-defined
value such that one can embed variables in the here-doc and not have them
evaluated until they are used later?  Something like this:

    code:
    -----
    use strict;
    use warnings;

    my $header = <<'end_of_header';
    # File: $filename
    end_of_header

    my $filename = 'xyz';
    print $header, "\n"; # output: want to see # File: xyz, but get # File:
$filename


I tried a few variations and nothing seems to work, as shown below.  (This
RFC http://dev.perl.org/perl6/rfc/229.html from Perl 6 implies that there
is fact no way to do this.)  Can anyone clarify.  Thank you.

    code:
    -----
    use strict;
    use warnings;

    my $header = <<'end_of_header';
    # File: $filename
    end_of_header

    my $filename = "test";

    print $header, "\n";
    print eval { "$header" }, "\n";
    print "$header", "\n";

    print eval { $header }, "\n";
    print ((eval $header) ."\n");

    output [ .. editted for readability .. ]:
    -------

    # File: $filename
    # File: $filename
    # File: $filename
    # File: $filename
    Use of uninitialized value in concatenation (.) or string at
..\perlt\testevalsimple.pl line 15.


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to