use HTML::Template;
my $TEMPLATE = HTML::Template->new_file($path_to_template);
open my $CSVIN, '<', $file;
foreach (<$CSVIN>) {
#split CSV into usable format
#the real script has about ten variables
(my $input1, $input2, $input3, $file_out) = split(/,/, $_);
open my $FHOUT, '>', $file_out;
$TEMPLATE->param({$var1 => $input1,
$var2 => $input2,
$var3 => $input3,
# ...
});
print $FHOUT $TEMPLATE->output();
close($FHOUT);
} # end iteration through CSV