NAME
lib::noop::missing - no-op loading of missing modules
VERSION
This document describes version 0.006 of lib::noop::missing (from Perl distribution lib-noop), released on 2021-06-07.
SYNOPSIS
use lib::noop::missing;
use Data::Dumper; # loads as usual
use Foo::Bar; # a no-op because, say, this module is missing
On the command-line, checking script syntax, ignoring missing modules:
% perl -Mlib::noop::missing -c your-script.pl
...
% perl -Mlib::noop::missing=-warn -c your-script.pl
Warning: Loading of Foo/Bar.pm is no-op'ed because it is missing
...
DESCRIPTION
This pragma installs an @INC
handler that will no-op module loading (via use
or require
) for missing modules. In the case of module missing, Perl will be tricked to just execute "1;"
and move on.
This pragma can be used for testing or for "checking syntax while ignoring missing modules" in the simplistic cases.
Note that even though the loading is "no-op"-ed, the %INC
entry for the module will still be added, making subsequent loading of the same module a truer no-op because Perl's require()
will see that the entry for the module in %INC
already exists and skips executing the @INC
handler altogether.
Also note that since the loading becomes a no-op operation, and no code other than "1;"
is executed during loading, if the original module contains function or package variable definition, they obviously will not be defined and your module-using code will be affected.
To cancel the effect of this pragma, you can unimport it. If you then want to actually load a module that has been no-op'ed, you have to delete its %INC
entry first:
use lib::noop::missing;
use Foo::Bar; # loading will be no-op'ed if the module is missing
no lib::noop::all;
use Foo::Bar; # this now dies
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/lib-noop.
SOURCE
Source repository is at https://github.com/perlancar/perl-lib-noop.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=lib-noop
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
lib::disallow will do the opposite: making existing modules unloadable.
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021, 2016 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.