如何使用Template Toolkit从数组中获取元素?

Prz*_*mek 5 arrays perl template-toolkit

我有一系列路径,我想用Template Toolkit读出来.如何访问此数组的数组元素?情况是这样的:

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

然后我像这样调用模板页面:

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

在这个模板中,我想在数组中创建一个目录树.我怎样才能访问它们?

我的想法是从foreach像这样的模板开始

[% FOREACH dir IN Tree.dirs %]
$dir
[% END %]
Run Code Online (Sandbox Code Playgroud)

Eug*_*ash 11

使用引用将数组或哈希值传递到模板中:

$vars->{'Tree'} = \@dirs;
Run Code Online (Sandbox Code Playgroud)

然后在模板中:

[% FOR d = Tree %]
    [% d %]
[% END %]
Run Code Online (Sandbox Code Playgroud)