Forum Webscript.Ru
Программирование => Perl => Тема начата: FANTAzeRus от 24 Декабря 2003, 23:08:00
-
Подскажите пожалуйста, как не исполльзуя дополнительных модулей, а в частности Text::Template, создать процедуру для замены в шаблоне выражений типа {$value} на значение существующей переменной???
-
Разобрался! Если кому интересно:
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}
-
FANTAzeRus
Зачем тебе все это? Если тебе нужен шаблонный "движок", тогда чем обусловлен отказ от уже готовых модуей?
-
ondr
Вполне возможно отсутствие нужного МНЕ модуля у хостера!
-
К примеру HTML::Template (и многие другие) можно положить к себе в каталог. Конечно не бог весть что, но хоть так.
-
ondr
Не хочется делать ....
-
не бог весть что