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();
    }