2010-03-17 7 views
5

Ich habe ein Array von Pfaden, die ich mit Template Toolkit auslesen möchte. Wie kann ich auf das Array Elemente dieses Arrays zugreifen? Die Situation ist folgende:Wie kann ich mithilfe von Template Toolkit Elemente aus einem Array entfernen?

my @dirs; 
opendir(DIR,'./directory/') || die $!; 
@dirs = readdir(DIR); 
close DIR; 
$vars->{'Tree'} = @dirs; 

Dann rufe ich die Vorlage Seite wie folgt aus:

$template->process('create.tmpl', $vars) 
    || die "Template process failed: ", $template->error(), "\n"; 

In dieser Vorlage ich einen Baum der Verzeichnisse im Array machen wollen. Wie kann ich auf sie zugreifen?

Meine Idee war, mit einem foreach in der Vorlage wie diese

[% FOREACH dir IN Tree.dirs %] 
$dir 
[% END %] 

Antwort

11

Verwenden Referenzen starten Arrays zu übergeben oder Hashes in Ihre Vorlage:

$vars->{'Tree'} = \@dirs; 

Dann in der Vorlage:

[% FOR d = Tree %] 
    [% d %] 
[% END %] 
+0

Einverstanden. Verwenden Sie immer Referenzen für Arrays und Hashes –

+0

Großartig, das hat perfekt funktioniert. Vielen Dank! Behalte es im Hinterkopf, immer Referenzen zu verwenden! – Przemek

Verwandte Themen