2011-10-24 61 views
1

我有一些鍵/值對我不能哈希添加到藏匿在催化劑

my %hash = ('key1','value1', 'key2', 'value2'); 

我通過它藏匿在一個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" 

但是哈希將有很多的值。它似乎是一個好主意。

我缺少什麼?先謝謝你。

回答

11

如果將散列放入列表上下文中,它將展開到列表中。

你想存儲一個散列引用。

$c->stash(theHash => \%hash); 
+0

大。它讓我學習了參考。 – MIguelele

0

或者你也可以使用這種方法:

$c->stash->{theHash} = { %hash }; # It creates an anonym hash reference 
            # which keeps the %hash data 
... 
print $c->stash->{theHash}->{key1}; # value1