|
|
Gunnar Hjalmarsson wrote:
>
> Trudge wrote:
>>
>> I'm trying to get a script to interpolate variable values in a
>> __DATA__ block if possible. This is a kind of alternative to a full-
>> blown template method. I'm not sure if I can even do what I want,
>> hence my posting here.
>
> It can be done; see the FAQ entry
>
> perldoc -q "expand variables"
>
> <snip>
>
>> while (<DATA>)
>> {
>> chomp;
>> if ($_ eq "<$data>")
>> {
>> next;
>> print "$_\n";
>> }
>> if ($_ eq "</$data>")
>> {
>> last;
>> }
>> print "$_\n";
>> }
>
> Try to replace that with:
>
> while (<DATA>) {
> chomp;
> next if $_ eq "<$data>";
> last if $_ eq "</$data>";
> s/(\$\$\w+)/$1/eeg;
> print "$_\n";
> }
Of course it can be done explicitly, but I assume the OP was asking if
it could be done implicitly, as if it were in double quotes. All you've
done here is write a Perl compiler for the specific case of embedded
scalar references; if you can write something to 'interpolate variable
values in a __DATA__block' in general then I'll be impressed.
Rob
|
|