Re: B::walksymtable oddness
Mattia Barbon [Thu, 27 Dec 2001 19:14:24 +0000 (20:14 +0100)]
Message-ID: <3C2B7310.861.18820D0@localhost>

p4raw-id: //depot/perl@13914

ext/B/B.pm

index 06f99c4..90d3ff5 100644 (file)
@@ -211,18 +211,18 @@ sub walksymtable {
     my ($symref, $method, $recurse, $prefix) = @_;
     my $sym;
     my $ref;
-    no strict 'vars';
-    local(*glob);
+    my $fullname;
+    no strict 'refs';
     $prefix = '' unless defined $prefix;
     while (($sym, $ref) = each %$symref) {
-       *glob = "*main::".$prefix.$sym;
+        $fullname = "*main::".$prefix.$sym;
        if ($sym =~ /::$/) {
            $sym = $prefix . $sym;
            if ($sym ne "main::" && $sym ne "<none>::" && &$recurse($sym)) {
-               walksymtable(\%glob, $method, $recurse, $sym);
+               walksymtable(\%$fullname, $method, $recurse, $sym);
            }
        } else {
-           svref_2object(\*glob)->EGV->$method();
+           svref_2object(\*$fullname)->$method();
        }
     }
 }