NAME Require::Hook::More - Load module like perl, with more options VERSION This document describes version 0.001 of Require::Hook::More (from Perl distribution Require-Hook-More), released on 2020-01-04. SYNOPSIS { local @INC = (Require::Hook::More->new( # skip_scalar => 1, # optional, default is 0 # skip_scalarref => 1, # optional, default is 0 # skip_globref => 1, # optional, default is 0 # skip_coderef => 1, # optional, default is 0 # skip_object => 1, # optional, default is 0 # prepend_code => "use re::engine::PCRE2", # optional, default is none # append_code => "1;", # optional, default is none ), @INC); require Foo::Bar; # ... } DESCRIPTION This require hook behaves like perl when loading modules from (the rest of the) @INC. Read "require" in perlfunc for more details. basically perl supports having scalar (directory names), or scalarref, or globref (filehandle), or coderef, or objects (blessed refs) in @INC. Additionally, this require hook provides some more options like skipping some items in @INC, adding code before or after the module's source code. Planned features in the future: plugins (e.g. storage plugin like retrieving source code from database, git repository [e.g. some branch or older revision], or remote storage), code filtering or mangling, signature checking, other kind of code checking, retry/fallback mechanism when code fails to be compiled, etc. METHODS new Usage: $hook = Require::Hook::More->new(%args); Constructor. Known arguments: * debug => bool (default: 0) If set to 1, will print debugging messages. * skip_scalar => bool (default: 0) * skip_scalarref => bool (default: 0) * skip_globref => bool (default: 0) * skip_coderef => bool (default: 0) * skip_object => bool (default: 0) * append_code => str (default: undef) Code to be added at the beginning of module source code. Can be used for example to add pragma since the code will be executed in the same lexical scope as the module source code. * prepend_code => str (default: undef) Code to be added at the end of module source code. HOMEPAGE Please visit the project's homepage at . SOURCE Source repository is at . BUGS Please report any bugs or feature requests on the bugtracker website 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. SEE ALSO Actual implementation of getting module source code from @INC is provided by Module::Installed::Tiny. Other "Require::Hook::*". AUTHOR perlancar COPYRIGHT AND LICENSE This software is copyright (c) 2020 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.