use strict; use warnings; my $v= [ bless( { 'class' => 'c-form__select', 'current' => 0, 'id' => 'radius', 'menu' => [ { 'name' => 'Distance (national)', 'value' => '1', 'seen' => 1 } ], 'type' => 'option', 'aria-label' => 'Choose a distance from your postcode', 'name' => 'radius', 'idx' => 1 }, 'HTML::Form::ListInput' ), bless( { }, 'HTML::Form::ListInput' ), bless( { }, 'HTML::Form::ListInput' ), bless( { }, 'HTML::Form::ListInput' ) ]; my $LookForName = 'radius'; for my $entry (grep {$_->{name} and $_->{name} eq $LookForName} @$v){ print "Found $LookForName:\n"; for my $menuItem (@{ $entry->{menu} }){ print "\tValue:",$menuItem->{value},"\n"; } }