in reply to Re^3: Problems getting info from .xml to display with HTML::Template
in thread Problems getting info from .xml to display with HTML::Template

Jeez, can't believe I missed that one! Spelling mistake fixed and tags updated, but now... more problems!

I'm getting this error:

HTML::Template->output() : fatal error in loop output : HTML::Template +::param() : attempt to set parameter 'department' with an array ref - parameter +is not a T MPL_LOOP! at C:/xampp/perl/site/lib/HTML/Template.pm line 3068 at file.pl line 18
My .tmpl contains:
<font size="4">Department: </font> <ul><li><select name="dept"> <TMPL_LOOP DEPT> <option value="<TMPL_VAR DEPARTMENT>"><TMPL_VAR DEPARTMENT></optio +n> </TMPL_LOOP> </select></li> </ul>
and again my perl is:
my @department = @{ $xml->{position}->{departments} }; $template->param(DEPT => \@department); print $template->output();
Aren't you supposed to set the name of <TMPL_LOOP> to an array?

Replies are listed 'Best First'.
Re^5: Problems getting info from .xml to display with HTML::Template
by moritz (Cardinal) on Jul 16, 2008 at 15:55 UTC
    I don't know what your data structure now looks like, but this is how it should be for your template:
    my $department = [ { DEPARTMENT => 'Value1' }, { DEPARTMENT => 'Value2' }, { DEPARTMENT => 'Value3' }, ];

    If you don't get it from XML::Simple in that format, you have to loop over the array items to construct the hash references.

      Perfect, Thank you!!