问题
If I have a preloaded Template::Toolkit object, in mod_perl enviroment for example, is there any way to change INCLUDE_PATH array without recreating the object?
回答1:
I use the Template::Provider for this
my $template_config = {
INCLUDE_PATH => "/path/to/templates",
ENCODING => 'utf8',
};
# Create template_provider manually so that we can manipulate template path
# later.
my $template_provider = Template::Provider->new($template_config);
my $tt = Template->new({
LOAD_TEMPLATES => [$template_provider ],
PRE_CHOMP => 2,
POST_CHOMP => 3,
TRIM => 1,
ENCODING => 'utf8',
}) || die $Template::ERROR;
# somewhere else later
$template_provider->include_path([
"$dir/templates/$language",
"$dir/templates"]);
来源:https://stackoverflow.com/questions/4186740/a-method-for-changing-include-path-in-templatetoolkit-on-the-fly