PerlX-ScopeFunction

 view release on metacpan or  search on metacpan

lib/PerlX/ScopeFunction.pm  view on Meta::CPAN

            }
        }
    }

    $import_as{$keyword} = $keyword if defined($keyword);

    return \%import_as;
}

sub import ($class, @args) {
    my $caller = (caller)[0];
    my %handler = (
        'let' =>[
            sub { __define_keyword( \&__rewrite_let, $_[0] ) },
            sub { __undefine_keyword( $_[0] ) },
        ],
        'with' =>[
            sub { __define_keyword( \&__rewrite_with, $_[0] ) },
            sub { __undefine_keyword( $_[0] ) },
        ],
        '$also' => [

lib/PerlX/ScopeFunction.pm  view on Meta::CPAN


    for (keys %import_as) {
        my ($importer, $unimporter) = @{$handler{$_}};
        my $as = $import_as{$_};
        $importer->($as, $caller);
        push @{ $STASH{$caller} }, sub { $unimporter->($as, $caller) };
    }
}

sub unimport ($class) {
    my $caller = (caller)[0];
    for my $unimporter (@{ $STASH{$caller} // []}) {
        $unimporter->();
    }
}

sub __do {
    my ($self, $code) = @_;
    local $_ = $self;
    return $self->$code();
}



( run in 2.179 seconds using v1.01-cache-2.11-cpan-a3c8064c92c )