配列の各要素がキーであり、その後に空の値が続くように、配列をハッシュにコピーしようとしています。
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
$_ に設定されます。
$_
is the current element of your list @u_list
.
So you have to say
my %questions = map { $_ => 1 } @u_list;
to map your list elements as hash keys.
参考までに、これを行ういくつかの異なる方法を次に示します。
使用する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;