Exporter::Tiny - an exporter with the features of Sub::Exporter but only core dependencies
package MyUtils;
use base "Exporter::Tiny";
our @EXPORT = qw(frobnicate);
sub frobnicate { ... }
1;
package MyScript;
use MyUtils "frobnicate" => { -as => "frob" };
print frob(42);
exit;
Exporter::Tiny supports many of Sub::Exporter's external-facing features including renaming imported functions with the -as
, -prefix
and -suffix
options; explicit destinations with the into
option; and alternative installers with the installer
option. But it's written in only about 40% as many lines of code and with zero non-core dependencies.
Its internal-facing interface is closer to Exporter.pm, with configuration done through the @EXPORT
, @EXPORT_OK
and %EXPORT_TAGS
package variables.
If you are trying to write a module that inherits from Exporter::Tiny, then look at:
If you are trying to use a module that inherits from Exporter::Tiny, then look at:
Please report any bugs to https://github.com/tobyink/p5-exporter-tiny/issues.
https://exportertiny.github.io/.
Simplified interface to this module: Exporter::Shiny.
Less tiny version, with more features: Exporter::Almighty.
Other interesting exporters: Sub::Exporter, Exporter.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013-2014, 2017, 2022-2023 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.