The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Использование HTML::Template в CGI-скриптах на Perl (perl html cgi web)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: perl, html, cgi, web,  (найти похожие документы)
Date: Tue, 10 Dec 2002 18:14:08 +0500 From: Alexey Mahotkin <alexm@hsys.msk.ru> Newsgroups: ftn.ru.perl Subject: Использование HTML::Template в CGI-скриптах на Perl MG> Проблема скорее в том что я не MG> понимаю какую структуру данных надо скормить param чтоб внешний и MG> втнутренний масивы заполнились так как мне нужно. В приведенном MG> скрипте структура даних @stats выглядит так: Всё очень просто. В HTML::Template есть некий "основной" хэшреф, из которого берутся значения "переменных". Hапример, если ты сказал $tmpl->param('username', 'vasya'); $tmpl->param('fullname', 'V. Poopking'); то "основной" хэшреф будет выглядеть так: { username => 'vasya', fullname => 'V. Poopking', } Теперь "переменные" 'username' и 'fullname' можно использовать в tmpl_var, tmpl_if, etc. "Оператор" tmpl_loop требует, чтобы значением переменной был arrayref хэшрефов. Hапример, васины покупки: <!--tmpl_loop name='purchases'--> Купил: <!--tmpl_name='what'-->; ценой <!--tmpl_name='price'--> <!--/tmpl_loop--> Список покупок будет храниться в массиве my @purchases = ( { what => 'хлеб', price => '20', }, { what => 'молоко', price => '30', }, ..., ); Этот список можно поместить в "основной" хэшреф с помощью $tmpl->param('purchases', \@purchases); Дальше всё рекурсивно повторяется: в каждом из хэшрефов, находящихся в массиве, могут находиться обычные скаляры или опять же ссылки на массив хэшрефов. Больше никакой функциональности в HTML::Template нет :) --alexm P.S.: оказывается, некоторые этого не знают: вот такая конструкция <!--tmpl_if name='purchases'--> <!--tmpl_loop name='purchases'--> Купил: <!--tmpl_name='what'-->; ценой <!--tmpl_name='price'--> <!--/tmpl_loop--> <!--tmpl_else--> Список покупок пуст. <!--/tmpl_if--> допустима. Пустой arrayref считается "false" в рамках оператора tmpl_if (хоть и не считается таковым в рамках перла).

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру
Hosting by Ihor