#!/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;