On the code side the use of HTML::Template looks like this:
my $template = HTML::Template->new(
filename => $dir . '/templates/spip_css.tmpl'
);
$template->param(PAGEBACKGROUND => $config->{css}->{pagebackground});
$template->param(TEXTCOLOR => $config->{css}->{textcolor} );
$template->param(TEXTFONT => $config->{css}->{textfont} );
$template->param(FONTSIZE => $config->{css}->{fontsize} );
...
{
my $css = new IO::File '>' . $cssfile
or die "Can't open '$cssfile': $!";
print $css $template->output();
}