Class::Load - a working (require "Class::Name") and more
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');
require EXPR only accepts Class/Name.pm style module names, not Class::Name. How frustrating! For that, we provide load_class 'Class::Name'.
require EXPR
Class/Name.pm
Class::Name
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'.
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'.
%INC
is_class_loaded 'Class::Name'
load_class will load Class::Name or throw an error, much like require.
load_class
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.
is_class_loaded
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.
$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.
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.
Adds a require method to UNIVERSAL so that you can say Class::Name->require. I personally dislike the pollution.
UNIVERSAL
Class::Name->require
Supports Class::Name and Class/Name.pm formats, no try_to_load or is_class_loaded.
try_to_load
This module was designed to be used anywhere you have if (eval "require $module"; 1), which occurs in many large projects.
if (eval "require $module"; 1)
Shawn M Moore, <sartak at bestpractical.com>
<sartak at bestpractical.com>
The implementation of is_class_loaded has been taken from Class::MOP.
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.
bug-class-load at rt.cpan.org
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.
To install Class::Load, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Class::Load
CPAN shell
perl -MCPAN -e shell install Class::Load
For more information on module installation, please visit the detailed CPAN module installation guide.