将数组复制到哈希

时间:2013-06-28 21:08:48

标签: perl

我正在尝试将数组复制到散列,这样数组的每个元素都是一个键,后跟一个空值。

my %questions = map { @u_list => $_ } @u_list;

这只打印出来

=>

我在perldoc上看到这个成语:

     %hash = map { get_a_key_for($_) => $_ } @array;

但我无法弄清楚如何设置密钥。我希望键是数组中的每个元素。

5 个答案:

答案 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;