Changes for version 0.004
- Delaying an expression that doesn't return anything, like a regular expression that didn't match, and then running force() in scalar context will now correctly return undef, instead of picking the topmost value of the stack.
- Delayed expressions now have the original @_ in scope; this allows things like 'delay shift;' or 'delay function($_[0], $_[3], 10)' to DTRT. The old behavior is still accessible through 'no Params::Lazy q(caller_args)', primarily for speed: Some dumbbenching shows the no-caller-args version to be around 20% faster. This fixes #87940.
- Initial threading support. Experimental!
- delay sub { $lexical } and the like now work, at least in 5.18. In older perls, they work but with some caveats -- see the documentation for more information.
- force() now inlines itself as a custom op in even more Perls.
- delay eval '$foo' will no longer see delayer's lexicals.
- __SUB__ should now return the correct value.
- Minor test fixups, proper skips for 5.8.
Modules
Transparent lazy arguments for subroutines.