sub showStart { my $self = shift; # function specific code ... return $self->display_tmpl( file => 'start.phtml', # other parms ); } sub display_tmpl { my $self = shift; my %opts = shift; my $tmpl = $self->load_tmpl('main.phtml'); my $tmpl_sub = $self->load_tmpl($opts{file}); #... use other parms... $tmpl->param(tmpl_sub => $tmpl_sub->output()); return $tmpl->output(); }