use strict; use warnings; use HTML::Template; my $bar = Foo::do_it(); my $tmpl = HTML::Template->new(filehandle => $bar->{filehandle}); $tmpl->param(baz => 'Hello GLOB!'); print $tmpl->output(); package Bar; sub new { my $class = shift; return bless {@_}, $class; } package Foo; sub do_it { my $bar = Bar->new(filehandle => \*DATA); return $bar; } __DATA__