lib::noop::all - no-op loading of all modules
This document describes version 0.006 of lib::noop::all (from Perl distribution lib-noop), released on 2021-06-07.
use lib::noop::all; use Foo::Bar; # now a no-op use Qux; # ditto
On the command-line, checking script syntax without loading any module:
% perl -Mlib::noop::all -c your-script.pl
This pragma installs an @INC handler that will no-op all your subsequent module loading (via use or require). Instead of loading the module and executing its code, Perl will be tricked to just executing "1;".
@INC
use
require
"1;"
This pragma can be used for testing or for "checking syntax while skipping loading 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.
%INC
require()
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::all; use Data::Dumper; # this code will die because Data::Dumper::Dumper is not defined BEGIN { print Data::Dumper::Dumper([1,2,3]) } no lib::noop::all; BEGIN { delete $INC{"Data/Dumper.pm"} } use Data::Dumper; # this code now runs ok BEGIN { print Data::Dumper::Dumper([1,2,3]) }
Please visit the project's homepage at https://metacpan.org/release/lib-noop.
Source repository is at https://github.com/perlancar/perl-lib-noop.
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.
lib::noop
lib::noop::except
lib::noop::missing
perlancar <perlancar@cpan.org>
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.
To install lib::noop, copy and paste the appropriate command in to your terminal.
cpanm
cpanm lib::noop
CPAN shell
perl -MCPAN -e shell install lib::noop
For more information on module installation, please visit the detailed CPAN module installation guide.