Smart! Your clear statement of design aims (and the K.I.S.S. attitude to implementing them) are something to copy.
HTML::Template is a bit of an obsession with me at present, because I just learnt to use it and it's saved me a lot of hassle. Maybe I over-rate it, but if you haven't looked at it, I'd recommend it as an easily learnt way to mass-produce chunks like
print << "END_OF_MENU";
<br>
<table border="0">
<tr>
<td><a href="/cgi-bin/signup.pl">Sign Up</a></td>
<td><a href="/cgi-bin/standings.pl">Standings</a></td>
<td><a href="/cgi-bin/loss.pl">Report Loss</a></td>
</tr>
</table>
END_OF_MENU
Wd also let you make centralised edits of,
e.g. file path.
§
George Sherston