note
thundergnat
<p><b>Update:</b> Clarified some ambiguities.</p>
<p>I can't see any reason why that (template) code wouldn't work. It works for me locally (with some mocked up data in a structure as you described.) The headers are in the wrong position but you just need to shift them around a bit. See if this works for you locally. If this works for you, I suspect the data structure you are getting from your database query is not what you think it is in your program.</p>
<p>Generates a file named test.html. Open it with a browser.</p>
<c>
use strict;
use warnings;
use Template;
my $tt = Template->new();
my $data =
[ {
city => 'thiscity',
country => 'thiscountry',
lat => 'thislat',
long => 'thislong',
name_urls => [
[ '', 'info1', 'info2', '', '', ['url1','url2','url3']],
[ '', 'info3', 'info4', '', '', ['url5','url6','url7']]
]
},
{
city => 'thatcity',
country => 'thatcountry',
lat => 'thatlat',
long => 'thatlong',
name_urls => [
[ '', 'info1', 'info2', '', '', ['url1','url2','url3']],
[ '', 'info3', 'info4', '', '', ['url5','url6','url7']]
]
},
];
$tt->process(\*DATA, {types => $data}, 'test.html') or die $tt->error(), "\n";
__DATA__
[% USE Dumper -%]
<table border='1'>
<tr><th>City/Locale</th><th>Country code</th><th>latitude</th><th>longditude</th><th>Identity details</th></tr>
[% FOREACH type IN types -%]
<tr>
<td><table style="border: solid red 1px">[% FOREACH nu IN type.name_urls %]
<tr>
<td> [% nu.1 %] </td>
<td> [% nu.2 %] </td>
<td><ul> [% FOREACH id IN nu.5 %]
<li style="border: solid navy 1px">[% id %]</li>
[% END -%]
</ul></td>
</tr>
[% END -%]
</table></td>
<td>[% type.city %]</td>
<td>[% type.country %]</td>
<td>[% type.lat %]</td>
<td>[% type.long %]</td>
</tr>
[% END -%]
</c>
971304
971304