When writing webapps, you have to understand what actions happen server side (your cgi script) and what happens client side (99.99% of the time, Javascript). In this particular case, you're creating some HTML using CGI's built in generators. The onchange argument is creating HTML so that when the select changes, the *client* side selectedVarfn function will be called:
<select name="var" onchange="selectedVarFns()" id="var">
<option selected="selected" value="Var">Var</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
So you would have to write that function in Javascript and deliver the JS with the HTML. Now I'm guessing this is some type of homework assignment since there are newer/better ways of writing webapps -- both the server side and on the client side. At a minimum server side, ditch
CGI's html methods for something like
Template::Toolkit or
HTML::Template. On the client side, a framework like
jQuery would serve you better than sprinkling onchanges throughout your HTML. But before you do that, try to get a really clear understanding of what happens server side versus what happens client side.