for(@$arrayref){ ## I might be wrong but this loop is unnecessary, ## you are testing for a single key, a hash only has ## one instance of a given key. # while (my ($key, $value) = each %{$_}) { # print "$value\n" # if $key eq 'place'; # } #lookee --v print "$_->{place}\n" if exists($_->{place})' #lookee --^ while (my ($key, $value) = each %{$_}) { print " $key = $value\n" unless ($key eq 'celcius' or $key eq 'place'); } }