http://qs321.pair.com?node_id=11119494


in reply to How to merge two arrays within the hash of arrays based on unique name.

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11119433 use warnings; my @before = ( { 'count_payment' => '', 'count_banking' => '31 (62.00)', 'name' => 'Parking Eye [LTD] One', }, { 'count_payment' => '10 (144.00)', 'count_banking' => '', 'name' => 'Parking Eye [LTD] Two', }, { 'count_payment' => '2 (80.42)', 'count_banking' => '', 'name' => 'Parking Eye [LTD] Three', }, { 'count_payment' => '', 'count_banking' => '4 (982.00)', 'name' => 'Parking Eye [LTD] Two', } ); my @after; my %names; for my $record ( @before ) { my $hashref = $names{ $record->{name} } //= $after[ @after ] = {}; $hashref->{$_} ||= $record->{$_} for keys %$record; } use Data::Dump 'dd'; dd \@after;