mapを使って配列をハッシュに変換する
# 以下のようなハッシュの配列(@hoge_list)があるとする [ { 'hoge_key' => 'hash1', 'hoge_id' => 2, 'hoge_name' => "hogehoge", }, { 'hoge_key' => 'hash2', 'hoge_id' => 3, 'hoge_name' => "gehogeho", }, ]; # mapを使ってハッシュのハッシュに変換 my $hoge_hoge = +{ map { $_->{hoge_id} => $_ } @$hoge_list }; # もしくは以下 my %hoge_hoge = map { $_->{hoge_id} => $_ } @$hoge_list; # キー順にソートしたい場合はリストにする my @hoge_hoge = map { $_->{hoge_id} => $_ } @$hoge_list; #変換結果($hoge_hoge) $VAR1 = { '2' => { 'hoge_key' => 'hash1', 'hoge_id' => 2, 'hoge_name' => "hogehoge", }, '3' => { 'hoge_key' => 'hash2', 'hoge_id' => 3, 'hoge_name' => "gehogeho", }, };