NAME
loading - Pragma to exempt a module from loading
VERSION
Version 1.01
SYNOPSIS
In some file (probably a script)
BEGIN {
package Some::Module;
no loading; # exempt the current package (Some::Module) from loading
use Exporter qw(import);
our @EXPORT = qw(lala);
sub lala { print "lala\n" }
}
use Some::Module; # would die without "no loading" above
lala; # prints "lala", imported from Some::Module
Alternatively you can specify the package(s) to exempt from loading in the no
statement
BEGIN {
package Some::Module;
use Exporter qw(import);
our @EXPORT = qw(lala);
sub lala { print "lala\n" }
}
no loading qw(Some::Module); # exempt Some::Module from loading
use Some::Module;
lala;
Description
no loading
dispenses the current package from being loaded from a .pm file when use
d later in the same file.
no loading qw(Some::Module Other::Module)
dispenses the named moduled from being loaded.
If a module has already been loaded from somewhere no loading
is a no-op, so it does no harm. use loading ...;
has no effect, it doesn't countermand no loading ...;
.
In effect, no loading
saves you the
BEGIN { Some::Module->import(<args>) }
you'd have to write in place of a use-statement in the same file where Some::Module is defined. That's a convenience, but it makes the file more readable. If the purpose of the file is to demonstrate various use-statements, the difference may be significant.
AUTHOR
Anno Siegel, <anno5 at mac.com>
BUGS
Please report any bugs or feature requests to bug-loading at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=loading. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc loading
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
LICENSE AND COPYRIGHT
Copyright 2014 Anno Siegel.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.