我正在尝试将数组复制到散列,这样数组的每个元素都是一个键,后跟一个空值。
my %questions = map { @u_list => $_ } @u_list;
这只打印出来
=>
我在perldoc上看到这个成语:
%hash = map { get_a_key_for($_) => $_ } @array;
但我无法弄清楚如何设置密钥。我希望键是数组中的每个元素。
答案 0 :(得分:10)
超级混乱但功能性的答案:
@questions{@u_list}=();
这是使用散列片段语法来指定一组散列键..
答案 1 :(得分:8)
my %questions = map { $_ => undef } @u_list;
在地图中,@u_list
的每个元素都设置为$ _。
答案 2 :(得分:3)
%hash = map { $_ => '' } @array;
这会将值设置为空字符串
答案 3 :(得分:2)
$_
是列表@u_list
的当前元素。
所以你必须说
my %questions = map { $_ => 1 } @u_list;
将列表元素映射为哈希键。
答案 4 :(得分:1)
以下是一些不同的方法,仅供参考。
使用map
my %questions = map { $_, undef } @u_list;
使用foreach
my %questions;
$questions{$_} = undef foreach ( @u_list );
使用hash slice
。
my %questions;
@questions{@u_list} = (undef) x @u_list;