我正在尝试将数组复制到散列,这样数组的每个元素都是一个键,后跟一个空值。
my %questions = map { @u_list => $_ } @u_list;
这只会打印出来
=>
我在 perldoc 上看到这个成语:
%hash = map { get_a_key_for($_) => $_ } @array;
但我不知道如何设置密钥。我希望键是数组中的每个元素。
我正在尝试将数组复制到散列,这样数组的每个元素都是一个键,后跟一个空值。
my %questions = map { @u_list => $_ } @u_list;
这只会打印出来
=>
我在 perldoc 上看到这个成语:
%hash = map { get_a_key_for($_) => $_ } @array;
但我不知道如何设置密钥。我希望键是数组中的每个元素。
超级混乱但实用的答案:
@questions{@u_list}=();
这是使用哈希切片语法来指定一组哈希键..
my %questions = map { $_ => undef } @u_list;
在地图中,每个元素@u_list
都设置为 $_。
%hash = map { $_ => '' } @array;
这会将值设置为空字符串
$_
是列表的当前元素@u_list
。
所以你不得不说
my %questions = map { $_ => 1 } @u_list;
将您的列表元素映射为哈希键。
这里有几种不同的方法可以做到这一点,仅供参考。
使用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;