summaryrefslogtreecommitdiff
path: root/lib/Symbol.pm
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-07-11 20:37:23 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-07-11 20:37:23 +0000
commitc2e66d9e68806a7000ee1a4760c35703a0e0ae89 (patch)
tree32508ca896b6e213afc07430f7aa223c0e9dde28 /lib/Symbol.pm
parent4755096ec61711c5104ba0b6b9314f32ca0351fe (diff)
downloadperl-c2e66d9e68806a7000ee1a4760c35703a0e0ae89.tar.gz
integrate cfgperl changes#6325..6373 into mainline
(NOTE: today's batch of integrations still untested) p4raw-link: @6373 (not found) p4raw-link: @6325 on //depot/cfgperl: d6ac44cc5a00fa38a56717785146bc16b716472c p4raw-id: //depot/perl@6373
Diffstat (limited to 'lib/Symbol.pm')
-rw-r--r--lib/Symbol.pm11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/Symbol.pm b/lib/Symbol.pm
index a842c1cd7b..a95383a5d6 100644
--- a/lib/Symbol.pm
+++ b/lib/Symbol.pm
@@ -129,8 +129,15 @@ sub delete_package ($) {
my $stem_symtab = *{$stem}{HASH};
return unless defined $stem_symtab and exists $stem_symtab->{$leaf};
- my $leaf_glob = $stem_symtab->{$leaf};
- my $leaf_symtab = *{$leaf_glob}{HASH};
+
+ # free all the symbols in the package
+
+ my $leaf_symtab = *{$stem_symtab->{$leaf}}{HASH};
+ foreach my $name (keys %$leaf_symtab) {
+ undef *{$pkg . $name};
+ }
+
+ # delete the symbol table
%$leaf_symtab = ();
delete $stem_symtab->{$leaf};