2008-11-24 8 views

Répondre

11

La documentation explique:

processus

(modèle $, \% vars, sortie $, options%)

La méthode process() est appelée à traiter un modèle . Le premier paramètre indique le modèle d'entrée comme l'un des suivants: un nom de fichier relatif à INCLUDE_PATH, s'il est défini; une référence à une chaîne de texte contenant le texte du modèle; ...

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

Ok, je l'ai eu à travailler. Le problème était que j'utilisais le troisième param (de sorte que je n'aurais pas à sortir le résultat immédiatement) et j'ai oublié d'en faire une référence. Voici ce qui fonctionne: $ template-> process (\ $ body_template, $ template_vars, \ $ output); –

4

De l'docs:

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

(On dirait que j'ai rafraîchi la page avant de poster.)

2

Vous pouvez trouver String::TT comme une façon alternative de plus belle je le fais. Certains teasers du pod ...

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(",") %] 
    } 
} 

et ...

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 –

Questions connexes