for my $id (keys %$final_data){ my $ar = $final_data->{$id}[0]; my @lines=(); my %seen=(); for my $ar (@$ar){ # did it here since I might have some more code next unless $seen{$ar->[0]}++; push @lines,{ ACCOUNT=>$ar->[0], NAME =>$ar->[1], DATE =>$ar->[2], }; } push @data, { ID => $id, LINE => \@lines }; }