sub xsub (&) { my ($code)=@_; sub { local ($a,$b) = @_; &$code; } } my $c_ref = xsub { $a ** $b }; say $c_ref->(2,3); #> 8