NAME
Class::Load - a working (require "Class::Name") and more
SYNOPSIS
use Class::Load ':all';
try_load_class('Class::Name')
or plan skip_all => "Class::Name required to run these tests";
load_class('Class::Name');
is_class_loaded('Class::Name');
DESCRIPTION
require EXPR
only accepts Class/Name.pm
style module names, not Class::Name
. How frustrating! For that, we provide load_class 'Class::Name'
.
It's often useful to test whether a module can be loaded, instead of throwing an error when it's not available. For that, we provide try_load_class 'Class::Name'
.
Finally, sometimes we need to know whether a particular class has been loaded. Asking %INC
is an option, but that will miss inner packages and any class for which the filename does not correspond to the package name. For that, we provide is_class_loaded 'Class::Name'
.
FUNCTIONS
load_class Class::Name
load_class
will load Class::Name
or throw an error, much like require
.
If Class::Name
is already loaded (checked with is_class_loaded
) then it will not try to load the class. This is useful when you have inner packages which require
does not check.
try_load_class Class::Name -> 0|1
Returns 1 if the class was loaded, 0 if it was not. If the class was not loaded, the error will be available in $Class::Load::ERROR
.
Again, if Class::Name
is already loaded (checked with is_class_loaded
) then it will not try to load the class. This is useful when you have inner packages which require
does not check.
is_class_loaded Class::Name -> 0|1
This uses a number of heuristics to determine if the class Class::Name
is loaded. There heuristics were taken from Class::MOP's old pure-perl implementation.
SEE ALSO
- UNIVERSAL::require
-
Adds a
require
method toUNIVERSAL
so that you can sayClass::Name->require
. I personally dislike the pollution. - Module::Load
-
Supports
Class::Name
andClass/Name.pm
formats, notry_to_load
oris_class_loaded
. - Moose, Jifty, Prophet, etc
-
This module was designed to be used anywhere you have
if (eval "require $module"; 1)
, which occurs in many large projects.
AUTHOR
Shawn M Moore, <sartak at bestpractical.com>
The implementation of is_class_loaded
has been taken from Class::MOP.
BUGS
Please report any bugs or feature requests to bug-class-load at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Class-Load.
COPYRIGHT & LICENSE
Copyright 2008-2009 Best Practical Solutions.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.