summaryrefslogtreecommitdiffstats
path: root/lib/Reply/Plugin/LexicalPersistence.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reply/Plugin/LexicalPersistence.pm')
-rw-r--r--lib/Reply/Plugin/LexicalPersistence.pm12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/Reply/Plugin/LexicalPersistence.pm b/lib/Reply/Plugin/LexicalPersistence.pm
index 44b2ef8..99c328c 100644
--- a/lib/Reply/Plugin/LexicalPersistence.pm
+++ b/lib/Reply/Plugin/LexicalPersistence.pm
@@ -22,8 +22,12 @@ then use C<$x> as expected in subsequent lines.
sub new {
my $class = shift;
+ my %opts = @_;
+
my $self = $class->SUPER::new(@_);
$self->{env} = {};
+ $self->{publisher} = $opts{publisher};
+
return $self;
}
@@ -31,12 +35,6 @@ sub compile {
my $self = shift;
my ($next, $line, %args) = @_;
- $args{environment} ||= {};
- $args{environment} = {
- %{ $args{environment} },
- %{ $self->{env} },
- };
-
my ($code) = $next->($line, %args);
$self->{env} = {
@@ -44,6 +42,8 @@ sub compile {
%{ peek_sub($code) },
};
+ $self->{publisher}->('lexical_environment', default => $self->{env});
+
return $code;
}