load
Runs something like ""use ModuleYouNeed"" at runtime.
use Dancer::ModuleLoader;
...
Dancer::ModuleLoader->load('Something')
or die "Couldn't load Something\n";
# load version 5.0 or more
Dancer::ModuleLoader->load('Something', '5.0')
or die "Couldn't load Something\n";
# load version 5.0 or more
my ($res, $error) = Dancer::ModuleLoader->load('Something', '5.0');
$res or die "Couldn't load Something : '$error'\n";
Takes in arguments the module name, and optionally the minimum version number required.
In scalar context, returns 1 if successful, 0 if not. In list context, returns 1 if successful, "(0,
"error message")" if not.
If you need to give argument to the loading module, please use the method "load_with_params"
require
Runs a ""require ModuleYouNeed"".
use Dancer::ModuleLoader;
...
Dancer::ModuleLoader->require('Something')
or die "Couldn't require Something\n";
my ($res, $error) = Dancer::ModuleLoader->require('Something');
$res or die "Couldn't require Something : '$error'\n";
If you are unsure what you need ("require" or "load"), learn the differences between "require" and "use".
Takes in arguments the module name.
In scalar context, returns 1 if successful, 0 if not. In list context, returns 1 if successful, "(0,
"error message")" if not.
load_with_params
Runs a ""use ModuleYouNeed qw(param1 param2 ...)"".
use Dancer::ModuleLoader;
...
Dancer::ModuleLoader->load_with_params('Something', qw(param1 param2) )
or die "Couldn't load Something with param1 and param2\n";
my ($res, $error) = Dancer::ModuleLoader->load_with_params('Something', @params);
$res or die "Couldn't load Something with @params: '$error'\n";
Takes in arguments the module name, and optionally parameters to pass to the import internal method.
In scalar context, returns 1 if successful, 0 if not. In list context, returns 1 if successful, "(0,
"error message")" if not.
use_lib
Runs a ""use lib qw(path1 path2)"" at run time instead of compile time.
use Dancer::ModuleLoader;
...
Dancer::ModuleLoader->use_lib('path1', @other_paths)
or die "Couldn't perform use lib\n";
my ($res, $error) = Dancer::ModuleLoader->use_lib('path1', @other_paths);
$res or die "Couldn't perform use lib : '$error'\n";
Takes in arguments a list of path to be prepended to @INC, in a similar way than "use lib". However, this
is performed at run time, so the list of paths can be generated and dynamic.
In scalar context, returns 1 if successful, 0 if not. In list context, returns 1 if successful, "(0,
"error message")" if not.
class_from_setting
Given a setting in Dancer::Config, composes the class it should be.
This is the function that translates:
# in config.yaml
template: "template_toolkit"
To the class:
Dancer::Template::TemplateToolkit
Example:
use Dancer::ModuleLoader;
my $class = Dancer::ModuleLoader->class_from_setting(
'Dancer::Template' => 'template_toolkit',
);
# $class == 'Dancer::Template::TemplateToolkit
$class = Dancer::ModuleLoader->class_from_setting(
'Dancer::Template' => 'tiny',
);
# class == 'Dancer::Template::Tiny