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 )