my %hash = map { ($a_v_d_D[$_] => [$isect2[$_], $a_v_b_B[$_], $a_v_c_C[$_]]) } 0..$#a_v_d_D; while (my ($key, $value) = each (%hash)) { for (my $i=0; $i<@CD_new_a_v_d_D; $i++) { if ($key eq $CD_new_a_v_d_D[$i]) { print "$key - $value\n"; } } }