sub deleteref { my $ref = shift; foreach my $k (keys %$ref) { if (ref($ref->{$k}) eq 'SCALAR') { delete($ref->{$k}); } elsif (ref($ref->{$k}) eq 'HASH') { deleteref($ref->{$k}); } elsif (ref($ref->{$k}) eq 'ARRAY') { undef(@{$ref->{$k}}); } elsif (ref($ref->{$k}) eq 'CODE') { delete($ref->{$k}); } elsif (ref($ref->{$k}) eq 'REF') { deleteref($ref->{$k}); } elsif (ref($ref->{$k}) eq 'LVALUE') { delete($ref->{$k}); #} elsif (ref($ref->{$k}) eq '') { } else { delete($ref->{$k}); } } undef(%$ref); }
In reply to recursive reference delete subroutine by Keystroke
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |