my @really_big_array = ({fruit=>apple},{vegitable=>'lettuce'},{fruit=>'oranges'},{vegitable=>'carrot'}); # put all entries with a 'fruit' key in a new array my @smaller_array = (); foreach(@really_big_array) { push(@smaller_array,$_) if($_->{fruit} ne ""); }