我仍然試圖解決我的散列解引用。我目前的問題是我現在將一個hashref傳遞給一個sub,並且我想在該sub中解引用它。但是我沒有找到正確的方法/語法來做到這一點。在sub中,我想要迭代散列鍵,但是hashref的語法與散列不同,我知道該怎麼做。如何取消引用已傳遞給子例程的Perl哈希引用?
所以,我要的是要做到這一點:
sub foo {
%parms = @_;
foreach $keys (key %parms) { # do something };
}
但有hashref中,而不是一個哈希傳遞。
任何指針(雙關不打算)是受歡迎的。
謝謝。
使用移位而不是@_做了訣竅,當然,使用標量而不是變量的散列。工作代碼: sub foo {$} parms = shift; foreach $ key(keys%$ parms){print「$ key:$$ parms {$ key} \ n」; } } 謝謝! – sgsax 2010-02-17 17:52:03
'$ parms - > {$ key}'可能比'$$ parms {$ key}' – toolic 2010-02-17 18:00:28
'shift'稍微偏好''_ _'不相關。 'my($ hashref)= @_;'也可以。 – 2010-02-18 00:43:08