I'm not familiar with HTML::Template, but HTML::FillForm works on HTML pages, so your order of processing is probably wrong: it should be template first, then use HTML::FillForm. HTML::FillForm bascially parses the raw html and does the correct form value substitution with the passed in fobject (which is the form object, i.e., anything that supports the param() method, in particular the CGI object.) Your $query->param() call should set the "address" parameter, i.e., $query->param("address", "123 Main Stree").
Comment on Re: Need help understanding HTML::FillInForm