in reply to Add value from one array element into another of same ID
#!/usr/bin/perl use warnings; use strict; my @data = map { my %h; @h{qw{ ID Name Number CODE }} = @$_; \%h } ['1212', 'JOE', 'XY1', '6'], ['1212', '', 'XY1', '10'], ['4456', 'MARIA', 'TYX', '6'], ['4456', '', 'TYX', '10'], ['8765', 'JEAN', 'HPO', '6']; my %name; for my $d (@data) { $name{ $d->{ID} } = $d->{Name} if length $d->{Name}; } my @new; my %used; for my $d (grep ! length $_->{Name}, @data) { push @new, { %$d, Name => $name{ $d->{ID} } }; undef $used{ $name{ $d->{ID} } }; } for my $d (@data) { push @new, $d if length $d->{Name} && ! exists $used{ $d->{Name} } +; } use Data::Dumper; print Dumper \@new;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Add value from one array element into another of same ID
by Anonymous Monk on May 27, 2021 at 18:26 UTC | |
by choroba (Cardinal) on May 27, 2021 at 18:34 UTC | |
by Anonymous Monk on May 27, 2021 at 19:21 UTC | |
by tangent (Parson) on May 27, 2021 at 20:02 UTC |