Олег Пронин > Panda-Export-1.2 > Panda::Export

Download:
Panda-Export-1.2.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 1.2   Source  

NAME ^

Panda::Export - Replacement for Exporter.pm + const.pm written in pure C.

It's very fast not only in runtime but at compile time as well. That means you can create and export/import a lot of constants/functions without slowing down the startup.

SYNOPSIS ^

Exporting functions

    package MyModule;
    use parent 'Panda::Export';
    
    sub mysub { ... }
    sub mysub2 { ... }
    
    1;
    
    package Somewhere;
    use MyModule qw/mysub mysub2/;
    
    mysub();

Creating and using constants (without export)

    package MyModule;
    
    use Panda::Export {
        CONST1 => 1,
        CONST2 => 'string',
    };
    
    say CONST1;
    say CONST2;

Creating and using constants with export

    package MyModule;
    use parent 'Panda::Export';
    
    use Panda::Export {
        CONST1 => 1,
        CONST2 => 'string',
    };
    
    say CONST1;
    say CONST2;
    
    package Somewhere;
    
    use MyModule;
    
    say CONST1;
    say CONST2;    

DESCRIPTION ^

You can create constants by saying

    use Panda::Export {CONST_NAME1 => VALUE1, ...}

If you want your class to able to export constants or functions you need to derive from Panda::Export.

Exports specified constants and functions to caller's package.

    use MyModule qw/subs list/;

Exports nothing

    use MyModule();

Exports all constants only (no functions)

    use MyModule;

Exports functions sub1 and sub2 and all constants

    use MyModule qw/sub1 sub2 :const/;

If Panda::Export discovers name collision while creating or exporting functions or constants it raises an exception. If you specify wrong sub or const name in import list an exception will also be raisen.

PERFOMANCE ^

Panda::Export is up to 10x faster than const.pm and 5x faster than Exporter.pm at compile-time. The runtime perfomance is the same as it doesn't depend on this module.

AUTHOR ^

Pronin Oleg <syber@cpan.org>, Crazy Panda, CP Decision LTD

LICENSE ^

You may distribute this code under the same terms as Perl itself.

syntax highlighting: