sub HashClean { my ($hashref) = @_; my $deletes = 0; if (ref ($hashref) eq "HASH") { foreach my $key (keys %$hashref) { if (ref ($hashref->{$key}) eq "HASH") { if (keys (%{$hashref->{$key}})) { $deletes += &HashClean($hashref->{$key}); }#if else { delete $hashref->{$key}; $deletes++; }#else }#if if (ref $hashref->{$key} eq "ARRAY") { if ($#{$hashref->{$key}} >= 0) { $deletes += &HashClean($hashref->{$key}); }#if else { delete $hashref->{$key}; $deletes++; }#else }#if }#foreach }#if else { my $arraynum = 0; for (my $arraynum = 0; $arraynum <= $#$hashref; $arraynum++) { if (ref ($hashref->[$arraynum]) eq "HASH") { if (keys (%{$hashref->[$arraynum]})) { $deletes += &HashClean($hashref->[$arraynum]); }#if else { delete $hashref->[$arraynum]; $deletes++; }#else }#if if (ref $hashref->[$arraynum] eq "ARRAY") { if ($#{$hashref->[$arraynum]} >= 0) { $deletes += &HashClean($hashref->[$arraynum]); }#if else { delete $hashref->[$arraynum]; $deletes++; }#else }#if }#for }#else &HashClean($hashref) if $deletes; return $deletes; }#sub