If I understand your question correctly, you're defining an HTML::Template parameter outside a loop and then trying to use it within a TMPL_LOOP. I.e., the code looks something like this:
my $template = new HTML::Template (
filename => "file.tmpl"
);
$template->param(
outside_of_loop => "foo",
the_loop => [
{ inside_of_loop => "bar" },
{ inside_of_loop => "baz" }
]
);
And your template looks like this:
Outside: <TMPL_VAR NAME=outside_of_loop>
<TMPL_LOOP NAME=the_loop>
Inside: <TMPL_VAR NAME=outside_of_loop> <TMPL_VAR NAME=inside_of_l
+oop>
</TMPL_LOOP>
You're expecting this output:
Outside: foo
Inside: foo bar
Inside: foo baz
But you're getting this instead:
Outside: foo
Inside: bar
Inside: baz
The problem is that TMPL_VARs defined outside of a loop don't show up within the loop. The solution is to set global_vars => 1 when you create the HTML::Template object. E.g.:
my $template = new HTML::Template (
filename => "file.tmpl",
global_vars => 1
);
-Matt |