The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"вставка html файла в стандартный вывод в Perl"
Отправлено andy, 13-Сен-07 04:55 
>Как в данном случае в Perl можно сделать, чтобы вместо переменных выводились
>значения?

как правильно было сказано выше, необходимо с помощью регулярных выражений менять название переменной на ее значение (модификатор "e"). Навроде такого:

[admin@comm perl]$ cat ./html_var_subst
#!/usr/bin/perl
use strict;
use warnings;
use vars qw( оG %VARS );
sub main;

оG = (
  html_file => 'html_var_subst.html'
);

%VARS = (
  title    => 'this is title',
  announce => 'another text'
);

main;

sub main {
  if( open( F, '<', $CFG{html_file} ) ) {
    while( <F> ) {
      s|\${([a-zA-Z_]+[a-zA-Z0-9_]*)}| exists $VARS{$1} ? $VARS{$1} : "<span class=\"error\">unknown var [$1]</span>" |gie;
      print;
    }
    close( F );
  } else {
    die "Can not open [$CFG{html_file}], $!\n";
  }
}
[admin@comm perl]$ cat ./html_var_subst.html
<html>
<head>
<title>${title}</title>
</head>
<body>
<h1>${title}</h1>
<p>${announce}</p>
<p>unknown: ${unknown}</p>
</body>
</html>


Кстати, читать файл в массив в этом случае не совсем удачная идея. Гораздо лучше читать файл построчно, попутно обрабатывая и печатая строки

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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