Структурированные шаблоны в Perl - PullRequest
1 голос
/ 02 марта 2011

Я работал над синтаксическим анализатором nmap в perl, у меня все хорошо, но я хотел бы написать запись в файл очень структурированным способом. Файл, о котором идет речь, будет nagios hosts.cfg (я бы использовал nmap2nagios.pl в их вики, но, похоже, он не работает, и я слишком увлекаюсь написанием своего собственного).

Записи файла должны выглядеть следующим образом

define hosts {
       host_name      $host_name || $host_ip
       alias          $os
       address        $host_ip
       }

Выше приведен только пример, но я надеюсь, что вы поняли идею. Любая помощь будет оценена! Я искал несколько шаблонных модулей, но все они, казалось, были очень ориентированы на cgi.

Ответы [ 3 ]

4 голосов
/ 02 марта 2011

Я второе предложение Ника. Некоторое вдохновение:

use Template;

my $tt = Template->new();
$tt->process( \*DATA,
    {   ip    => '10.90.0.1',
        host  => 'some',
        alias => 'some_alias',
    } => 'file.cfg'
) or die $tt->error();

__DATA__
define hosts {
       host_name      [% host %]
       alias          [% alias %]
       address        [% ip %]
       }

Примечание: Шаблон относится к Template Toolkit

4 голосов
/ 02 марта 2011

Я бы всегда использовал Template Toolkit для вывода любого структурированного документа. Он не предназначен специально для CGI - например, я с радостью использовал его для написания конфигурационных файлов.

0 голосов
/ 02 марта 2011

Возможно, вы ищете форматы .Я никогда не использовал его, и синтаксис выглядит безумно, но вам не нужны никакие модули.

...