Автор Тема: Perl и Шаблоны  (Прочитано 3200 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
Perl и Шаблоны
« : 24 Декабря 2003, 23:08:00 »
Подскажите пожалуйста, как не исполльзуя дополнительных модулей, а в частности Text::Template, создать процедуру для замены в шаблоне выражений типа {$value} на значение существующей переменной???

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
Perl и Шаблоны
« Ответ #1 : 25 Декабря 2003, 15:40:14 »
Разобрался! Если кому интересно:

use CGI qw(:standard);
print header();

$TEST = "Test Message";
print &template("./test.tpl");
exit;

sub template
{
 my $filename = $_[0];
 my $tpl;
 open(TPL,"<$filename");
 while() {$tpl .=$_}
 close(TPL);
 my @matches = $tpl =~ m/(\\{\\$\\w*?\\})/g;
 my $matches_found = @matches;

 for($i=0; $i<$matches_found; $i++){
   $pattern = @matches[$i];
   $pattern =~ s/\\{/\\\\{/g;
   $pattern =~ s/\\}/\\\\}/g;
   $pattern =~ s/\\$/\\\\\\$/g;
   $tpl_var = substr($pattern, 3, -2);
   $eval_str = \'$tpl =~ s/\'.$pattern.\'/\'.$tpl_var.\'/gemi;\';
   eval($eval_str);  
 }
 return $tpl;
}

........


файл test.tpl:

Mess: {$TEST}

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Perl и Шаблоны
« Ответ #2 : 25 Декабря 2003, 16:07:33 »
FANTAzeRus
Зачем тебе все это? Если тебе нужен шаблонный "движок", тогда чем обусловлен отказ от  уже готовых модуей?
0 OK, 0:1

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
Perl и Шаблоны
« Ответ #3 : 25 Декабря 2003, 16:35:06 »
ondr
Вполне возможно отсутствие нужного МНЕ модуля у хостера!

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Perl и Шаблоны
« Ответ #4 : 25 Декабря 2003, 16:40:13 »
К примеру HTML::Template (и многие другие) можно положить к себе в каталог. Конечно не бог весть что, но хоть так.
0 OK, 0:1

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
Perl и Шаблоны
« Ответ #5 : 26 Декабря 2003, 08:17:13 »
ondr
Не хочется делать ....
Цитировать

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
Perl и Шаблоны
« Ответ #6 : 26 Декабря 2003, 08:19:37 »
Цитировать
не бог весть что

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28