Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

autouse(3pm) [osx man page]

autouse(3pm)						 Perl Programmers Reference Guide					      autouse(3pm)

NAME
autouse - postpone load of modules until a function is used SYNOPSIS
use autouse 'Carp' => qw(carp croak); carp "this carp was predeclared and autoused "; DESCRIPTION
If the module "Module" is already loaded, then the declaration use autouse 'Module' => qw(func1 func2($;$)); is equivalent to use Module qw(func1 func2); if "Module" defines func2() with prototype "($;$)", and func1() has no prototypes. (At least if "Module" uses "Exporter"'s "import", otherwise it is a fatal error.) If the module "Module" is not loaded yet, then the above declaration declares functions func1() and func2() in the current package. When these functions are called, they load the package "Module" if needed, and substitute themselves with the correct definitions. WARNING
Using "autouse" will move important steps of your program's execution from compile time to runtime. This can o Break the execution of your program if the module you "autouse"d has some initialization which it expects to be done early. o hide bugs in your code since important checks (like correctness of prototypes) is moved from compile time to runtime. In particular, if the prototype you specified on "autouse" line is wrong, you will not find it out until the corresponding function is executed. This will be very unfortunate for functions which are not always called (note that for such functions "autouse"ing gives biggest win, for a workaround see below). To alleviate the second problem (partially) it is advised to write your scripts like this: use Module; use autouse Module => qw(carp($) croak(&$)); carp "this carp was predeclared and autoused "; The first line ensures that the errors in your argument specification are found early. When you ship your application you should comment out the first line, since it makes the second one useless. AUTHOR
Ilya Zakharevich (ilya@math.ohio-state.edu) SEE ALSO
perl(1). perl v5.16.2 2012-10-11 autouse(3pm)

Check Out this Related Man Page

Module::Loaded(3pm)					 Perl Programmers Reference Guide				       Module::Loaded(3pm)

NAME
Module::Loaded - mark modules as loaded or unloaded SYNOPSIS
use Module::Loaded; $bool = mark_as_loaded('Foo'); # Foo.pm is now marked as loaded $loc = is_loaded('Foo'); # location of Foo.pm set to the # loaders location eval "require 'Foo'"; # is now a no-op $bool = mark_as_unloaded('Foo'); # Foo.pm no longer marked as loaded eval "require 'Foo'"; # Will try to find Foo.pm in @INC DESCRIPTION
When testing applications, often you find yourself needing to provide functionality in your test environment that would usually be provided by external modules. Rather than munging the %INC by hand to mark these external modules as loaded, so they are not attempted to be loaded by perl, this module offers you a very simple way to mark modules as loaded and/or unloaded. FUNCTIONS
$bool = mark_as_loaded( PACKAGE ); Marks the package as loaded to perl. "PACKAGE" can be a bareword or string. If the module is already loaded, "mark_as_loaded" will carp about this and tell you from where the "PACKAGE" has been loaded already. $bool = mark_as_unloaded( PACKAGE ); Marks the package as unloaded to perl, which is the exact opposite of "mark_as_loaded". "PACKAGE" can be a bareword or string. If the module is already unloaded, "mark_as_unloaded" will carp about this and tell you the "PACKAGE" has been unloaded already. $loc = is_loaded( PACKAGE ); "is_loaded" tells you if "PACKAGE" has been marked as loaded yet. "PACKAGE" can be a bareword or string. It returns falls if "PACKAGE" has not been loaded yet and the location from where it is said to be loaded on success. BUG REPORTS
Please report bugs or other issues to <bug-module-loaded@rt.cpan.org<gt>. AUTHOR
This module by Jos Boumans <kane@cpan.org>. COPYRIGHT
This library is free software; you may redistribute and/or modify it under the same terms as Perl itself. perl v5.18.2 2013-11-04 Module::Loaded(3pm)
Man Page