The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.20 - 2016-09-24

  • Changed the semantics of how we check for "import" subroutine that I initially tried to address in 0.16.
    • I was being overly clever in detecting whether an "import" subroutine existed without tripping up if someone had created UNIVERSAL::import, at the cost of not supporting importing packages that had an "import" subroutine in their base class, and having to explain why this package worked oddly with inheritance.
    • Now we just check for the existing import routine with ->can("import"). If you've used "UNIVERSAL::import" in your program you're just going to have to deal with that as now described in the "wrap_existing_import" section of the documentation.
  • Before this release we'd autovifify the "options" hash even if no options were provided, due to our internal checking of {options}->{$something}. Now "options will never be autovivified by us.
  • Similarly we'd materialize "call => undef" in cases where the call subroutine wasn't supplied, so it couldn't be checked for in e.g. an override callaback with "exists", we'd have to check if it was true. Now the key won't be there if there's no "call" callback.

Modules

Utility to write lazy exporters of constant subroutines