いまいちピンとくる言い方が分からないけれど,つまりはこういうこと. [ { id => 1, value => 'foo', }, { id => 2, value => 'bar', }, ] このようなデータ構造があったときに,以下のようにidをkeyとしてハッシュにしたい. { 1 => { id => 1, value => 'foo', }, 2 => { id => 2, value => 'bar', } } 割とよくあることなので,普段はmapを使ってこのように書いている. my $x = +{map { ($_->{id} => $_) } @users}; これは,List::Utilのreduceを使っても同じように書ける.引数の先頭がハッシュリファレンスになっていて,それを引き回すことで実現している. use List::Util qw/reduce/; my $x