Gunnar Hjalmarsson wrote:
Trudge wrote:
On Mar 29, 4:05 pm, [EMAIL PROTECTED] (Gunnar Hjalmarsson) wrote:
Trudge wrote:
I'm trying to get a script to interpolate variable values in a
__DATA__ block if possible.

<snip>

It can be done; see the FAQ entry

     perldoc -q "expand variables"

<snip>

        while (<DATA>) {
                chomp;
                next if $_ eq "<$data>";
                last if $_ eq "</$data>";
                s/(\$\$\w+)/$1/eeg;
                print "$_\n";
        }

Gunnar, this works perfectly, and is what I am trying to achieve. Many
thanks, and a brew on me :)

<snip>

As far as I know, templates require separate files to
work with. To avoid a lot of separate files, I've been using 'here'
documents up until now, all contained in one large script. But I
wondered if I could achieve a similar
effect putting the blocks of text in a __DATA__ block. Now I know it
can be done, so I will be exploring this method.

Not much to explore, really. Did you read the applicable Perl FAQ? Even if it provides this method, it doesn't exactly recommend it... Besides full-blown template methods, the FAQ suggests a couple of other methods, that usually are better, and so is here documents which you say you have been using.


I've gone through that FAQ and did discover some new things for me. My goal is to be able to have several variables interpolated in the __DATA__ block. As Rob suggested, maybe that is not possible with the method you provided? That is what I will be exploring.

Granted I only gave you a simplistic example to work with, so that may be why you offered that solution.

I've installed the Inline::Files module as suggested by Chas. and will be looking at that as well. The Warning about over-writing files made me wonder though.

Perhaps I'm just as well sticking with my current usage of here-docs.

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


Reply via email to