我有一个多维哈希。有时候,当只有一个哈希时,我想把这个哈希发送到一个特定的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"
);
}
但是,如果我用$param1 = $myhash{$firstkey}{'param1'}
替换$myhash{$firstkey}
,它就可以正常工作。
1条答案
按热度按时间6tqwzwtp1#
列表上下文中的哈希生成成对的键值标量列表。