summaryrefslogtreecommitdiffstats
path: root/lib/Reply/Plugin/Defaults.pm
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-06-08 14:13:31 -0500
committerJesse Luehrs <doy@tozt.net>2013-06-08 14:13:31 -0500
commit41f767bb6fa8f33b2f4ace0b909969dbcbbc37d5 (patch)
tree6696ba70c2574abd204b574aca57da96548f457f /lib/Reply/Plugin/Defaults.pm
parentb96eeb3ff1799f1f06dbd2cd9aad8bf9be81df89 (diff)
downloadreply-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.pm9
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,