配列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が全ての値となる。もちろん別の配列(リスト)を持ってきても良い。
このブログを応援する
お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。