foreach my $thing (@array) { if(exists $hash{$thing}) { push @new_array, $hash{$thing}; } } #### my @new_array = grep { exists $hash{$_} ? $hash{$_} : 0 } @array;