diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-06-08 14:13:31 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-06-08 14:13:31 -0500 |
commit | 41f767bb6fa8f33b2f4ace0b909969dbcbbc37d5 (patch) | |
tree | 6696ba70c2574abd204b574aca57da96548f457f /lib/Reply/Plugin/Defaults.pm | |
parent | b96eeb3ff1799f1f06dbd2cd9aad8bf9be81df89 (diff) | |
download | reply-41f767bb6fa8f33b2f4ace0b909969dbcbbc37d5.tar.gz reply-41f767bb6fa8f33b2f4ace0b909969dbcbbc37d5.zip |
allow multiple independent lexical environments
Diffstat (limited to 'lib/Reply/Plugin/Defaults.pm')
-rw-r--r-- | lib/Reply/Plugin/Defaults.pm | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Reply/Plugin/Defaults.pm b/lib/Reply/Plugin/Defaults.pm index b0c4e88..debed09 100644 --- a/lib/Reply/Plugin/Defaults.pm +++ b/lib/Reply/Plugin/Defaults.pm @@ -38,6 +38,15 @@ sub compile { my $self = shift; my ($next, $line, %args) = @_; + my @envs = ( + ($args{environment} ? ($args{environment}) : ()), + values %{ $args{environments} }, + ); + + if (@envs) { + $args{environment} = { map { %$_ } @envs } + } + return eval_closure( source => "sub {\n$PREFIX;\n$line\n}", terse_error => 1, |