The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Exporter::Extensible::Compat - 5.8 and 5.10 compatibiliy for Exporter::Extensible

DESCRIPTION

This module provides a compatibility layer for perl 5.10 and 5.8. The module itself is not used at all; loading it applies monkey patches to Exporter::Extensible. Do not use this module, as it gets loaded automatically by Exporter::Extensible if needed.

The main problem solved here is that perl earlier than 5.12 does not install a sub into the package stash until after calling MODIFY_CODE_ATTRIBUTES, so the :Export attributes can't resolve to a name until later.

There isn't any good spot in the API of Exporter::Extensible to put this delayed processing, so about the only way to fix is to just perform it before any public API method, and at the end of the scope.

AUTHOR

Michael Conrad <mike@nrdvana.net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2023 by Michael Conrad.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.