配列Aに入っている全ての値を、ハッシュHのキーにしたい。これは一行で解決する。
サンプル
#!/usr/bin/perl ;# ;#配列の値をキーにしたハッシュを作成 ;# use strict; use Data::Dumper; #---------------------------------------# #準備 #---------------------------------------# my @a = (0..9); my %h = (); #---------------------------------------# #作成 #---------------------------------------# @h{@a} = ('a'..'j'); #---------------------------------------# #表示 #---------------------------------------# print Dumper(\%h);
実行結果
左辺がハッシュのキー、右辺が値
$VAR1 = { '6' => 'g', '3' => 'd', '7' => 'h', '9' => 'j', '2' => 'c', '8' => 'i', '1' => 'b', '4' => 'e', '0' => 'a', '5' => 'f' };
ここではハッシュの値を('a'..'j')
としたが、「@h{@a} = ();
」とすればすべて空にもできるし、「@h{@a} = ( (1) x ($#a+1));
」などとすれば1が全ての値となる。もちろん別の配列(リスト)を持ってきても良い。