我有一些关键/值对的哈希
my %hash = ('key1','value1', 'key2', 'value2');
我在Stash中传递它以在html模板中使用它:
$c->stash( theHash => %hash);
然后,在模板中,要显示值,我认为我应该使用类似
的内容[% theHash.key1 %] #It should display "value1"
[% theHash.key2 %] #It should display "value2"
但它不起作用。
如果我逐个传递值,它会起作用:
$c->stash( valueOfHash1 => $hash{'key1'});
$c->stash( valueOfHash2 => $hash{'key2'});
将其检索为
[% valueOfHash1 %] #It displays "value1"
[% valueOfHash2 %] #It displays "value2"
但是哈希会有很多值。这似乎是一个好主意。
我缺少什么?提前谢谢。
答案 0 :(得分:11)
如果将哈希删除到列表上下文中,它将被展开到列表中。
您想存储哈希引用。
$c->stash( theHash => \%hash);
答案 1 :(得分:0)
或者你可以使用这种方法:
$c->stash->{theHash} = { %hash }; # It creates an anonym hash reference
# which keeps the %hash data
...
print $c->stash->{theHash}->{key1}; # value1