in reply to Merging Data into one array

You can transform your data into two hashes, ACC being their keys. Then you can easily iterate over the keys of one hash and merge with the corresponding value from the second hash if the key exists there:
my @transformed = map +{ map { my $k = delete $_->{ACC}; $k => $_; } @$_ }, $data1, $data2; my @merged; for my $key (keys %{ $transformed[0] }) { if (exists $transformed[1]{$key}) { push @merged, { ACC => $key, %{ $transformed[0]{$key} }, %{ $transformed[1]{$key} } }; } } print Dumper \@merged;
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,