sub make_hash { my $hash_ref = shift; my %return_hash; foreach my $key (keys %$hash_ref) { if ($key eq 'bic_candidates') { for my $i (0..$#{$hash_ref->{$key}}) { for my $inkey (sort keys %{$hash_ref->{$key}->[$i]}) { $return_hash{$key}{$i}{$inkey} = (defined $hash_ref->{$key}->[$i]->{$inkey} ? $hash_ref->{$key}->[$i]->{$inkey} : undef); } } } elsif ($key eq 'checks') { for my $i (@{$hash_ref->{$key}}) { $return_hash{$key}{$i} = defined; } } else { $return_hash{$key} = (defined $hash_ref -> {$key} ? $hash_ref -> {$key} : undef); } } return %return_hash; }