Приветствую всех. Столкнулся с такой проблемой: Создаю шаблон
my $table = HTML::Template->new(filename => './templates/table.htm'); $table->param(USER_INFO => [ { USER_NAME => "name", USER_IP => 'xxxxxx' } ]); print $table->output();
Сам шаблон:
<table width=100% border=1> <tr><td colspan=3><h3>Заголовок:</h3></td></tr> <TMPL_LOOP NAME=USER_INFO> <tr> <td><TMPL_VAR NAME=USER_NAME></td> <td><TMPL_VAR NAME=USER_IP></td> <td><TMPL_VAR NAME=USER_MAC></td> </tr> </TMPL_LOOP> </table>
Я беру информцию из базы, как ее подставить в param, т.е. если у меня 10 записей, то цикл

Вы уже сделали
Вы уже сделали бОльшую часть работы.
Если честно, я не проверял как оно работает на HTML::Template, но формат передаваемых данных именно такой какой ему нужен.
Отличающийся кусок кода выглядит примерно так:
чтобы "поштучно" добавлять переменные в этот массив (как их выдает DBI) делается примерно так:
или так (вначале делаем пустой массив, потом в цикле добавляем в него значения):
примеры тут:
http://search.cpan.org/~samtregar/HTML-Template-2.9/Template.pm#TMPL_LOO...
Спасибо
Спасибо огромное за разъяснения. Я немного не понял ваш синтаксис, что значит $a = []; (т.е. к чему тут квадратные скобки) и что такое @$a - ? :)
сделал так:
SQL запрос
Выгребаем данные, и складываем в массив
Обьявляем шаблон, отправляем данные и выводим таблицу:
use Source();Более кошерный
Более кошерный вариант:
selectall_arrayref вернет результат в виде указателя на массив, Slice => приведет к тому, что в качестве элементов будут использоваться указатели на хеш с ключами по названиям полей.
Аккуратнее, места занимает меньше, работает быстрее.
Я немного не
Это работа с указателями. $a приравнивается указатель на анонимный массив, @$a - взять массив по указателю.
Вообще читайте книги про Perl.
Угу
Я бы сказал не приравнивается, а присваивается, и не взять массив, а разименовать его... Хотя какая разница, как это звучит по-русски, если на Perl оно гораздо короче пишется :) ?
Да, конечно,
Да, конечно, присваивается и разъименовывается, просто попытался написать максимально простым языком (как Perl :)
И на Perl оно не только короче пишется, но и читается глазом очень ясно - как говорят дизайнеры, "глазу есть за что зацепиться".