【发布时间】:2015-08-28 20:39:15
【问题描述】:
我有一个散列,它为每条记录保存一个具有 2 个元素的匿名散列:一个数组和一个散列。我想用一个键列表初始化这个辅助哈希。
我知道,当您使用普通哈希(不是 ref)并同时使用键列表和值列表时,可以使用哈希切片。
我的代码是这样的
my %records;
my $key = "key1";
my @states = ( "state1", "state2", "state3" );
$records{$key} = {
numbers => [],
states => %{@states} #This is wrong !
};
编辑(标记为重复):这个问题询问如何将多个键添加到匿名哈希。
【问题讨论】:
-
切片很酷,但您不必在任何地方都使用它们。就做
my $states = { ... }; $records{$key} = { states => $states }; -
或
states => { map { $_ => undef } @states }。 -
我可以发誓以前有人问过这个问题,但我能找到的最接近的是Anonymous Hash Slices - syntax?
-
越短并不总是越好。一般来说,你应该追求可读性而不是简洁。
-
您应该展示您希望
%records的外观。令人费解的是,您只有哈希键而没有值