use strict; use warnings; use HTML::Template; use Inline::Files; my $skeleton = HTML::Template->new(filehandle => \*SKELETON); my @page = ( HTML::Template->new(filehandle => \*PAGE1), HTML::Template->new(filehandle => \*PAGE2), ); for (@page) { $skeleton->param(body => $_->output); print $skeleton->output; } __SKELETON__ __PAGE1__ hello world __PAGE2__ foo bar baz qux #### [% title %] [% content %] #### (page1.html) [% WRAPPER skeleton.html title="Page 1" %] hello world [% END %] ----------------------------------------------- (page2.html) [% WRAPPER skeleton.html title="Page 2" %] foo bar baz [% END %]