my %in_hash = ( jibber => [ {id => 1, score => 3, name => 'foo'}, {id => 5, score => 1, name => 'bar'}, {id => 22, score => 6, name => 'baz'}, ], jabber => [ {id => 3, score => 1, name => 'boo'}, {id => 5, score => 3, name => 'bar'}, {id => 12, score => 2, name => 'zib'}, {id => 22, score => 2, name => 'baz'}, ], ); #### my %out_hash = ( 'jibber jabber' => [ {id => 5, score => 4, name => 'bar'}, {id => 22, score => 8, name => 'baz'}, ], 'jibber' => [ {id => 1, score => 3, name => 'foo'}, ], 'jabber' => [ {id => 3, score => 1, name => 'boo'}, {id => 12, score => 2, name => 'zib'}, ], )