sub analyse_user_inputs { my $r = shift; if (ref $r eq 'ARRAY') { return map { analyse_user_inputs($_) } grep ref, @$r } elsif (ref $r eq 'HASH') { return keys(%$r), map { analyse_user_inputs($_) } grep ref, values(%$r) } else { return } }