sub navbar_callback { my ($self, $ht_params, $tmpl_params, $tmpl_file) = @_; if( $tmpl_file eq 'master.tmpl' ) { # load your variables my %navbar_params = $self->navbar_params; $tmpl_params->{$_} = $navbar_params{$_} foreach keys %navbar_params; # alternatively, you could also load a separate template for the navbar, and # pass it on to the master as a tmpl_var. Note that the if() clause protects you # from an infinite loop # $tmpl_params->{navbar} = $self->navbar_template; } }