You already have the correct answer above, but there are other ways of dealing with this if you get tired of always having to pass those parameters when you call load_tmpl.
If all your templates need the loop_context_vars parameter set, then I would override the load_tmpl method to always provide it for you.
#################
# load_tmpl #
#################
#
# Over ride the CGI::Application load_tmpl method so that
# we can automatically add our own parameters to all
# templates
#
sub load_tmpl {
my $self = shift;
my $template_name = shift;
my %options = @_;
# Turn off 'die_on_bad_params' unless it has been explicitely set
$options{die_on_bad_params} = 0
unless defined $options{die_on_bad_params};
# Turn on 'loop_context_vars' unless it's been explicitely disabled
$options{loop_context_vars} = 1
unless defined $options{loop_context_vars};
# Load the template using the real CGI::Application load_tmpl method
my $template = $self->SUPER::load_tmpl($template_name, %options);
return $template;
}
- Cees