我有一個多維哈希。有時,當只有一個散列時,我想將該單個散列發送到特定的 HTML::Template 檔案。
我讀過你可以像這樣組合兩個哈希:
@hash1{ keys %hash2 } = values %hash2;
但在我的場景中,我希望將哈希中的所有鍵和值發送到模板檔案。
我要避免的是:
$template->param(
param1 => $myhash{'param1'},
param2 => $myhash('param2'),
paramX => $myhash('paramX'),
name => "Bob",
);
我想要這樣的東西:
$template->param(
{ keys %myhash } = values %myhash,
name => "Bob"
);
但我想那是行不通的。
有任何想法嗎?
編輯。此代碼回傳錯誤HTML::Template->param() : You gave me an odd number of parameters to param()!
my %myhash = ( '9343X' => { 'param1' => 'Walter', 'param2' => 'Blue', 'param3' => 513 } );
$items = scalar (keys %myhash);
if ($items == 1) {
my ($firstkey) = %myhash;
$template->param(
$myhash{$firstkey},
name => "Bob"
);
}
但是,如果我用它替換$myhash{$firstkey}它就$param1 = $myhash{$firstkey}{'param1'}可以了。但我想避免指定每個引數。
uj5u.com熱心網友回復:
串列背景關系中的哈希會生成成對的鍵值標量串列。
$template->param(
%myhash,
name => "Bob"
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521572.html
標籤:perl
上一篇:如何在perl腳本中讀取貨幣符號
下一篇:正則運算式僅在多行匹配中
