NAME
    Acme::CPANModules::LoadingModules - List of modules to load other Perl
    modules
VERSION
    This document describes version 0.001 of
    Acme::CPANModules::LoadingModules (from Perl distribution
    Acme-CPANModules-LoadingModules), released on 2023-11-20.
DESCRIPTION
    Basics
    Module::Load is basically just a thin wrapper over Perl's builtin
    require() to translate between module name and path name, since the
    traditional behavior of require() is to expect module name in bareword
    form but path name in string form. This confusion will likely be fixed
    in future perl versions. For example, see PPC 0006 [1].
    [1] <https://github.com/Perl/PPCs/blob/main/ppcs/ppc0006-load-module.md>
    Installing modules automatically on demand
    Since Perl provides require hooks, one can trap the module loading
    process and check for an uninstalled module and attempt to install it
    automatically on demand when a code wants to load that module. Probably
    not suitable for use in production. See separate list:
    Acme::CPANModule::ModuleAutoinstallers.
    Loading module on demand
    Aside from require hook, Perl also provides the AUTOLOAD mechanism (see
    "perlsub" documentation for more details). This lets you catch unknown
    function being called and lets you attempt to load a module that might
    provide that function. It is not exactly "loading modules on demand" but
    close enough for a lot of cases. See separate list:
    Acme::CPANModule::ModuleAutoloaders.
    Loading multiple modules at once
    all requires all packages under a namespace. It will search the
    filesystem for installed module source files under a specified namespace
    and load them all.
    lib::require::all loads all modules in a directory.
    Logging module loading
    Require::HookChain::log::logger
    Require::HookChain::log::stderr
    Preventing loading certain modules
    lib::filter, lib::disallow
    Require hook frameworks
    These frameworks let you create require hook more easily.
    Require::Hook
    Require::Hook::More
    Require::HookChain
    Specifying relative paths
    lib::relative
ACME::CPANMODULES ENTRIES
    Module::Load
        Author: BINGOS <https://metacpan.org/author/BINGOS>
    Acme::CPANModule::ModuleAutoinstallers
    Acme::CPANModule::ModuleAutoloaders
    all Author: DEXTER <https://metacpan.org/author/DEXTER>
    lib::require::all
        Author: MIYAGAWA <https://metacpan.org/author/MIYAGAWA>
    Require::HookChain::log::logger
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
    Require::HookChain::log::stderr
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
    lib::filter
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
    lib::disallow
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
    Require::Hook
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
    Require::Hook::More
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
    Require::HookChain
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
    lib::relative
        Author: DBOOK <https://metacpan.org/author/DBOOK>
FAQ
  What is an Acme::CPANModules::* module?
    An Acme::CPANModules::* module, like this module, contains just a list
    of module names that share a common characteristics. It is a way to
    categorize modules and document CPAN. See Acme::CPANModules for more
    details.
  What are ways to use this Acme::CPANModules module?
    Aside from reading this Acme::CPANModules module's POD documentation,
    you can install all the listed modules (entries) using cpanm-cpanmodules
    script (from App::cpanm::cpanmodules distribution):
     % cpanm-cpanmodules -n LoadingModules
    Alternatively you can use the cpanmodules CLI (from App::cpanmodules
    distribution):
        % cpanmodules ls-entries LoadingModules | cpanm -n
    or Acme::CM::Get:
        % perl -MAcme::CM::Get=LoadingModules -E'say $_->{module} for @{ $LIST->{entries} }' | cpanm -n
    or directly:
        % perl -MAcme::CPANModules::LoadingModules -E'say $_->{module} for @{ $Acme::CPANModules::LoadingModules::LIST->{entries} }' | cpanm -n
    This Acme::CPANModules module also helps lcpan produce a more meaningful
    result for "lcpan related-mods" command when it comes to finding related
    modules for the modules listed in this Acme::CPANModules module. See
    App::lcpan::Cmd::related_mods for more details on how "related modules"
    are found.
HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/Acme-CPANModules-LoadingModules>.
SOURCE
    Source repository is at
    <https://github.com/perlancar/perl-Acme-CPANModules-LoadingModules>.
SEE ALSO
    Acme::CPANModules::ModuleAutoinstallers
    Acme::CPANModules::ModuleAutoloaders
    Acme::CPANModules - about the Acme::CPANModules namespace
    cpanmodules - CLI tool to let you browse/view the lists
AUTHOR
    perlancar <perlancar@cpan.org>
CONTRIBUTING
    To contribute, you can send patches by email/via RT, or send pull
    requests on GitHub.
    Most of the time, you don't need to build the distribution yourself. You
    can simply modify the code, then test via:
     % prove -l
    If you want to build the distribution (e.g. to try to install it locally
    on your system), you can install Dist::Zilla,
    Dist::Zilla::PluginBundle::Author::PERLANCAR,
    Pod::Weaver::PluginBundle::Author::PERLANCAR, and sometimes one or two
    other Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps
    required beyond that are considered a bug and can be reported to me.
COPYRIGHT AND LICENSE
    This software is copyright (c) 2023 by perlancar <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.
BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Load
    ingModules>
    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.