# always use strictures (the following two lines) use strict; use warnings; my @array = qw(key1 key2 key3 key4); my %hash = (key2 => undef, key4 => 'The goods', key5 => 'More goods'); for my $key (@array) { next if ! exists $hash{$key}; # Skip if the key is not used in the hash next if ! defined $hash{$key}; # Skip if the key exists, but is undefined print "The value for '$key' is '$hash{$key}'\n"; last; } #### The value for 'key4' is 'The goods'