The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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::noop

lib::noop::all

lib::noop::except

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.