2008-11-24 145 views

回答

11

的文檔解釋:

過程($模板\%瓦爾,$輸出%期權)

過程()方法被調用來處理模板。第一個參數表示輸入模板爲以下之一:如果定義,則爲相對於INCLUDE_PATH的文件名; 對包含模板文本的文本字符串的引用; ...

 # text reference 
     $tt->process(\$text) 
      || die $tt->error(), "\n" 
+1

好吧,我得到它的工作。問題是我正在使用第三個參數(這樣我就不必立即輸出結果),並忘記將其作爲參考。這是什麼工程:$ template-> process(\ $ body_template,$ template_vars,\ $ output); – 2008-11-24 18:27:22

4

docs

# text reference 
$text = "[% INCLUDE header %]\nHello world!\n[% INCLUDE footer %]"; 
$tt->process(\$text) 
    || die $tt->error(), "\n"; 

(貌似我應該在發佈前已經刷新頁面。)

2

您可能會發現String::TT作爲一個更好的替代方法正在做。從莢有些玩笑......

use String::TT qw/tt strip/; 

sub foo { 
    my $self = shift; 
    return tt 'my name is [% self.name %]!'; 
} 

sub bar { 
    my @args = @_; 
    return strip tt q{ 
     Args: [% args_a.join(",") %] 
    } 
} 

和...

my $scalar = 'scalar'; 
my @array = qw/array goes here/; 
my %hash = (hashes => 'are fun'); 

tt '[% scalar %] [% scalar_s %] [% array_a %] [% hash_h %]'; 
+0

http://search.cpan.org/perldoc?String::TT – 2008-12-18 17:40:34

相關問題