Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
$xtpl->parse("main");
$xtpl->out("main");
?>
Для того чтобы реализовать то же самое с использованием библиотеки HTML::Template, придется кое-что уточнить. В этой библиотеке нет понятия именованного блока. Как же разделить пространство действия переменных шаблона?
Для этого нужно воспользоваться конструкцией <TMPL_LOOP …>…</TMPL_LOOP>. Внутри этого «цикла» переменные-подстановки являются вложенными в цикл. Воспользуемся этим фактом.
Шаблон «list.html» для библиотеки HTML::Template:
<ol>
<TMPL_LOOP NAME="item">
<li><TMPL_VAR NAME="item"></li>
</TMPL_LOOP>
</ol>
Шаблон «ex_inc2.html» для библиотеки HTML::Template:
<html>
<head><title>Вложенные шаблоны</title></head>
<body>
<p>
Подключение одного шаблона в разных местах страницы и с разным заполнением.
</p>
Список 1:
<TMPL_LOOP NAME="first">
<TMPL_INCLUDE NAME="list.html">
</TMPL_LOOP>
Список 2:
<TMPL_LOOP NAME="second">
<TMPL_INCLUDE NAME="list.html">
</TMPL_LOOP>
</body>
</html>
Вся тонкость обработки сводится к корректному формированию массивов:
#!/usr/bin/perl
use strict;
# Путь к каталогу библиотеки
use lib $ENV{DOCUMENT_ROOT}."/../lib";
# Подключение библиотеки
use HTML::Template;
my $template = HTML::Template->new(