# this ensures that the dispatchers get called as methods of the app itself
around _curry => sub {
my ($orig, $self) = (shift, shift);
- $self->$orig($self->_app_object, @_);
+ my $code = $self->$orig($self->_app_object, @_);
+ ref($_[0]) eq 'HASH'
+ ? do { my $v = $_[0]; sub { local *_ = $v; &$code } }
+ : $code
};
1;