IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

ハッシュの特定のキーでまとめる処理

use Data::Dumper;
$a=+[ +{k=>1, v=>'a'}, +{k=>1, v=>'b'}, +{k=>2, v=>'c'}, +{k=>2, v=>'d'},];
print Dumper($a);
$b=+{};
push (@{$b->{$_->{k}}} ,$_->{v}) for (@$a);
print Dumper($b);

$VAR1 = [
          {
            'k' => 1,
            'v' => 'a'
          },
          {
            'k' => 1,
            'v' => 'b'
          },
          {
            'k' => 2,
            'v' => 'c'
          },
          {
            'k' => 2,
            'v' => 'd'
          }
        ];
$VAR1 = {
          '1' => [
                   'a',
                   'b'
                 ],
          '2' => [
                   'c',
                   'd'
                 ]
        };