};
}
+has _shadowed_sub => (is => 'rw', clearer => '_clear_shadowed_sub');
+
sub shadow_sub {
my $self = shift;
my $stash = $self->stash;
if (my $shadowed = $stash->get_symbol('&'.$self->keyword_name)) {
+ $self->_shadowed_sub($shadowed);
$stash->remove_symbol('&'.$self->keyword_name);
$stash->add_symbol('&__'.$self->keyword_name, $shadowed);
}
$self->keyword_parser->remove_keyword($self);
$self->clear_keyword_parser;
$self->clear_globref;
+ my $stash = $self->stash;
+ if (my $shadowed = $self->_shadowed_sub) {
+ $self->_clear_shadowed_sub;
+ $stash->remove_symbol('&__'.$self->keyword_name);
+ $stash->add_symbol('&'.$self->keyword_name, $shadowed);
+ }
}
has keyword_parser => (
use Test::More;
use Filter::Keyword;
+sub ::dd {
+ use Data::Dumper ();
+ local $Data::Dumper::Useqq = 1;
+ local $Data::Dumper::Terse = 1;
+ my $out = Data::Dumper::Dumper($_[0]);
+ chomp $out;
+ return $out;
+}
+
BEGIN {
(our $Kw = Filter::Keyword->new(
target_package => __PACKAGE__,