Re: [htmltmpl] Associate (bug?)
Brought to you by:
samtregar
From: Brad B. <bm...@ma...> - 2009-11-30 18:14:57
|
On Mon, Nov 30, 2009 at 12:33 PM, Brad Baxter <bm...@ma...> wrote: > In my experiments with nested templates, I tried > some trickery using associate to avoid the extra > param() calls. However, I've come across an unexpected > result (at least, unexpected to me). Okay, now I'm just confused. Can someone tell me what I'm doing wrong in the code below? In the H::T docs, I read this: "associate - this option allows you to inherit the parameter values from other objects. The only requirement for the other object is that it have a param() method that works like HTML::Template's param()." In the code below, I'm using a My::Param object that has a param() method that "works like HTML::Template's param()" as regards a get operation (which is all I'd expect it to need). Does it have to be more than that? Regards, Brad 1 #!/usr/local/bin/perl 2 3 use strict; 4 use warnings; 5 use HTML::Template; 6 7 my $text = qq'This is a <TMPL_VAR NAME="color"> bird.\n'; 8 9 my $assoc = My::Param->new( { color => 'blue' } ); 10 print "Testing: ".$assoc->param( 'color' )."\n"; 11 12 my $tmpl = HTML::Template->new( 13 scalarref => \$text, 14 associate => $assoc, 15 ); 16 17 print $tmpl->output(); 18 19 package My::Param; 20 sub new { bless $_[1], $_[0] } 21 sub param { $_[0]->{ $_[1] } } 22 23 __END__ 24 Use of uninitialized value in hash element at ./qt line 21. 25 Testing: blue 26 This is a bird. |