Like this?:
#!/usr/bin/perl use strict; use warnings; use Data::Dump qw[ pp ]; my $data1 = [ { 'NAME' => '1PAUL DY', 'DATE' => '12009-05-05', 'NUMBER' => '1000 +01', 'ACC' => '1A1A', }, { 'NAME' => '2PAUL DY', 'DATE' => '2011-01-05', 'NUMBER' => '20033 +1', 'ACC' => '2A3B', }, { 'NAME' => '4PAUL DY', 'DATE' => '42011-01-05', 'NUMBER' => '4200 +331', 'ACC' => '6A4B', }, ]; my $data2 = [ { 'EXT1' => '1b', 'EXT2' => '12b', 'EXT3' => '13b', 'EXT4' => '14d' +, 'ACC' => '1A1A', }, { 'EXT1' => '2b', 'EXT2' => '2b', 'EXT3' => '2b', 'EXT4' => '2d', ' +ACC' => '2A3B', }, { 'EXT1X' => '4b', 'EXT2X' => '4b', 'EXT3X' => '4b', 'EXT4X' => '4d +', 'ACC' => '4A4B', }, ]; for my $i ( 0 .. $#{ $data1 } ) { if( $data1->[ $i ]{ ACC } eq $data2->[ $i ]{ ACC } ) { $data1->[ $i ]{ $_ } = $data2->[ $i ]{ $_ } for keys %{ $data2 +->[ $i ] } } } pp $data1; __END__ C:\test>1148951.pl [ { ACC => "1A1A", DATE => 12009-05-05, EXT1 => "1b", EXT2 => "12b", EXT3 => "13b", EXT4 => "14d", NAME => "1PAUL DY", NUMBER => 100001, }, { ACC => "2A3B", DATE => 2011-01-05, EXT1 => "2b", EXT2 => "2b", EXT3 => "2b", EXT4 => "2d", NAME => "2PAUL DY", NUMBER => 200331, }, { ACC => "6A4B", DATE => 42011-01-05, NAME => "4PAUL DY", NUMBER => +4200331 }, ]
In reply to Re: Merging Data into one array
by BrowserUk
in thread Merging Data into one array
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |