Привет всем! Я не стал разбираться с HTML::Template и проч.. а сделал так:
unshift (@INC, "/var/www/localhost/cgi-bin/test/"); require "template.pl"; # template.pl находится в папке test print "Content-type: text/html; charset=UTF-8\n\n"; @vars = ("name1", "name2", "name3"); @values = ("value1", "value2", "value3"); print qq( <table>); for ($i = 0; $i<3; ++$i) { table(); } print qq(</table> );
template.pl
sub tables { print qq( <tr> <td>$vars[$i]</td> <td>$values[$i]</td> </tr> <br>); }; 1;
Чем плох такой подход ?

Шаблоны нужны чтобы разделить логику и представление
Шаблоны нужны чтобы разделить логику и представление. Например, по-хорошему лучше чтобы программист занимался программированием а верстку делал верстальщик, причем идеально чтобы каждый мог делать свой кусок работы совсем независимо от другого. Используя например mason это достигается путем совершенно минимальных дополнений к работе верстальщика, типа таких конструкций (код условный, хотя и очень похож на рабочий):
<? $site_home; ?>
<tr>
<? foreach (@m) { ?>
<td><? $_ ?></td>
<? } ?>
</tr>
- дело в том что программисту обычно удобнее работать с целой страницей, а верстальщик видит страницу как хидер+футер+меню (и все это делает в отдельных файлах, потому что так удобнее), а таблиц на серьезной странице десятки, да плюс сейчас еще добавился ajax - править такие штуки можно, но где-то после 3-й правки получается такой "шитый код", что становится проще всю страницу переделать по новой, чем исправлять, а ведь написание первого варианта кода это обычно только начало жизни программы.
При использовании движков шаблонов от программиста требуется только собрать нужные для шаблона данные и "спустить курок", а совсем не нужно задумываться, сколько уровней таблиц в странице и тп.
Я когда-то попытался соорудить некое подобие масона - соорудил, но я даже не обсуждаю, насколько у меня было все надежно и удобно :) - вопрос в том что в серьезных движках шаблонов предусмотрено: доступ из шаблона к данным скрипта, защиты (в виде ограничения, чего экспортируется в шаблон), кеширование отпарсеных шаблонов, часть могут работать под mod_perl/fastcgi..
А если так уж неохота разбираться, можно взять что проще - я пользовал micromason.
Спасибо,
Спасибо, посмотрел на CPAN, там модулей с таким названием много.
Ты имел ввиду http://search.cpan.org/~ferrency/Text-MicroMason-2.0/MicroMason.pm - этот ?
------------------
use Source();я использовал это
я использовал это, возможно ментейнер поменялся
http://search.cpan.org/~evo/Text-MicroMason-1.98/MicroMason.pm