my @array1 = ( [ id1, ... 169 other fields ... ], [ id2, ... 169 other fields ... ], ... ~200k other records ... ); my @array2 = ( [ id2, ... 169 other fields ... ], [ id5, ... 169 other fields ... ], ... ~50k other records ... ); #### my %array2 = map { $_->[0] => $_ } @array2; #### for my $array1_rec (@array1) { my $array2_rec = $array2{ $array1_rec->[0] } or next; ... Change @$array1_rec based on values from @$array2_rec ... }