perl中的结构化模板

时间:2011-03-02 14:48:55

标签: perl templates nagios

我一直在使用perl中的nmap解析器,我一直很顺利,但是我想以非常有条理的方式写入文件。有问题的文件将是一个nagios hosts.cfg(我在他们的wiki上使用了nmap2nagios.pl,但它似乎没有用,而且我自己写的太多了)。

文件条目应如下所示

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

以上只是一个例子,但我希望你能得到这个想法。任何帮助将不胜感激!我一直在寻找一些模板模块,但它们似乎都非常适合cgi的。

3 个答案:

答案 0 :(得分:4)

我总是使用Template Toolkit来输出任何结构化文档。它并不是专门针对CGI的 - 我很乐意用它来编写配置文件。

答案 1 :(得分:4)

我是尼克的第二个建议。一些灵感:

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

答案 2 :(得分:0)

也许您正在寻找formats。我从来没用过它,语法看起来很疯狂,但你不需要任何模块。