Acme-Magpie

 view release on metacpan or  search on metacpan

lib/Acme/Magpie.pm  view on Meta::CPAN

package Acme::Magpie;
use strict;
use vars qw/$VERSION %Nest %symtab/;
$VERSION = '0.06';

use constant debug => 0;
use Devel::Symdump;

sub import {
    my $self = shift;
    my $steal_from = caller;
    for my $sym ( sort Devel::Symdump->rnew($steal_from)->functions() ) {
        next unless $sym =~ /^\Q$steal_from/;
        print "$sym\n" if debug;

        if ( $self->shiny($sym) ) {
            print "stealing $sym\n" if debug;
            my ($pkg, $name) = $sym =~ /^(.*::)(.*)$/;
            local %symtab;
            {
                no strict 'refs';
                *symtab = \%{ $pkg };
            }
            $Nest{ $sym } = delete $symtab{ $name };
        }
    }
}



( run in 1.366 second using v1.01-cache-2.11-cpan-49f99fa48dc )