NAME
    preloadable - Require a module during run-time (or compile-time)

VERSION
    This document describes version 0.001 of preloadable (from Perl
    distribution preloadable), released on 2019-03-19.

SYNOPSIS
    In your script:

     use preloadable 'Foo';

     sub baz {
         use preloadable 'Bar';
         Bar::blah(1, 2);
     }
     baz;

    If the environment PERL_PRELOAD_MODULES is false or not defined, the
    above script is equivalent to:

     require Foo;
     sub baz {
         require Bar;
         Bar::blah(1, 2);
     }
     baz;

    But if PERL_PRELOAD_MODULES is true, the above script is equivalent to:

     BEGIN { require Foo }
     sub baz {
         BEGIN { require Bar }
         Bar::blah(1, 2);
     }
     baz;

    which means "Foo" and "Bar" are loaded during compile-time.

DESCRIPTION
    With PERL_PRELOAD_MODULES unset or false, this statement:

     use preloadable 'Foo';

    is basically equivalent to run-time "require()":

     require Foo;

    preloadable uses B::Hooks::AtRuntime to perform the "require()" on
    runtime. During runtime, you do take a hit of an extra subroutine call.

    With PERL_PRELOAD_MODULES set to true, this statement:

     use preloadable 'Foo';

    will simply instruct preloadable to "require" "Foo" at compile-time.

NOTES
    B::Hooks::AtRuntime's startup overhead is a bit heavier than I'd like.
    Will probably fork to create a lite alternative.

HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/preloadable>.

SOURCE
    Source repository is at <https://github.com/perlancar/perl-preloadable>.

BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://rt.cpan.org/Public/Dist/Display.html?Name=preloadable>

    When submitting a bug or request, please include a test-file or a patch
    to an existing test-file that illustrates the bug or desired feature.

AUTHOR
    perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2019 by perlancar@cpan.org.

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