我无法在Catalyst中的Stash中添加Hash

MIg*_*ele 1 perl catalyst

我有一些键/值对的哈希

my %hash = ('key1','value1', 'key2', 'value2');
Run Code Online (Sandbox Code Playgroud)

我在Stash中传递它以在html模板中使用它:

$c->stash( theHash => %hash);
Run Code Online (Sandbox Code Playgroud)

然后,在模板中,要显示值,我认为我应该使用类似的东西

[% theHash.key1 %] #It should display "value1"
[% theHash.key2 %] #It should display "value2"
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

如果我逐个传递值,它可以工作:

$c->stash( valueOfHash1 => $hash{'key1'});
$c->stash( valueOfHash2 => $hash{'key2'});
Run Code Online (Sandbox Code Playgroud)

并将其检索为

[% valueOfHash1 %] #It displays "value1"
[% valueOfHash2 %] #It displays "value2"
Run Code Online (Sandbox Code Playgroud)

但哈希将有很多价值.它似乎是一个好主意.

我错过了什么?先感谢您.

Que*_*tin 11

如果将哈希值放入列表上下文中,则会将其展开到列表中.

您想存储哈希引用.

$c->stash( theHash => \%hash);
Run Code Online (Sandbox Code Playgroud)