2011-03-02 65 views
1

我一直在研究perl中的nmap解析器,我一直在用它,但是我想以非常結構化的方式寫入文件。有問題的文件將是一個nagios hosts.cfg(我會在他們的wiki上使用nmap2nagios.pl,但它似乎沒有工作,並且我有太多的樂趣寫我自己的)。perl中的結構化模板

文件條目應該是這樣的

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

以上僅僅是一個例子,但我希望你的想法。任何幫助將不勝感激!我查找了一些模板模塊,但它們似乎都非常適合CGI。

回答

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

+0

感謝這個例子! – 2011-03-02 15:02:07

+1

我喜歡數據處理,我要去偷它。 – Axeman 2011-03-02 15:52:53

+0

@Axeman - 很高興喜歡它。 – bvr 2011-03-02 17:11:31

4

我總是使用Template Toolkit來輸出任何結構化文檔。它不是專門針對CGI的 - 我很高興地用它來編寫配置文件。

+0

感謝大家所有幫助。從來沒有這樣做過,不知道從哪裏開始。 – 2011-03-02 15:01:24

0

也許您在尋找formats。我從來沒有使用它,語法看起來瘋狂,但你不需要任何模塊。

+0

這些被稱爲格式,而不是表格。瘋狂的語法 – friedo 2011-03-02 17:05:34

+0

你是對的,我的壞。 – musiKk 2011-03-02 17:49:48