my %hash = map { $numbers[$_] => $signs[$_]} 0 .. $#numbers; while (($key, $value) = each (%hash)) { if (@new_numbers) { for (my $i=0; $i<@new_numbers; $i++) { if ($key == $new_numbers[$i]) { print "$value \t $new_numbers[$i]"; # this prints the sign and the number it matches to } } }