use Devel::Symdump ; my %clean_types = ( 'packages' => '::' , 'scalars' => '$' , 'arrays' => '@' , 'hashes' => '%' , 'functions' => '&' , 'ios' => '*' , ) ; my @clean_order = qw(scalars arrays hashes functions ios packages) ; sub clean_pack { my ( $pack ) = @_ ; my $dump = Devel::Symdump->rnew($pack); my %glob ; foreach my $i ( @clean_order ) { my $type = $clean_types{$i} ; my @symbols = $dump->$i ; foreach my $name ( @symbols ) { #print "$type$name\n" ; if ($type eq '\$') { undef $$name ;} elsif ($type eq '\@') { undef @$name ;} elsif ($type eq '\%') { undef %$name ;} elsif ($type eq '\&') { undef &$name ;} elsif ($type eq '\*') { undef *$name ;} elsif ($type eq '::') { $glob{"$name\::"} = 1 ;} $glob{$name} = 1 ; } } foreach my $Key ( reverse sort keys %glob ) { undef *$Key ;} }