SYNOPSIS package YourModule; # most of the time, you only need to do this use Exporter::Rinci qw(import); our %SPEC; # f1 will not be exported by default, but user can import them explicitly using # 'use YourModule qw(f1)' $SPEC{f1} = { v=>1.1 }; sub f1 { ... } # f2 will be exported by default because it has the export:default tag $SPEC{f2} = { v=>1.1, tags=>[qw/a export:default/] }; sub f2 { ... } # f3 will never be exported, and user cannot import them via 'use YourModule # qw(f1)' nor via 'use YourModule qw(:a)' $SPEC{f3} = { v=>1.1, tags=>[qw/a export:never/] }; sub f3 { ... } DESCRIPTION Exporter::Rinci is a simple wrapper for Exporter. Before handing out control to Exporter's import(), it will look at the exporting module's @EXPORT, @EXPORT_OK, and %EXPORT_TAGS and if they are empty will fill them out with data from Rinci metadata (%SPEC). The rules are similar to Perinci::Exporter: all functions will be put in @EXPORT_OK, except functions with export:never tag will not be exported and functions with export:default tag will be put in @EXPORT. %EXPORT_TAGS will also be filled from functions' tags. SEE ALSO Perinci::Exporter