in reply to functions for passing variables through multiple CGI forms

Under HTML::Embperl this is a snap. On each HTML page that you want hidden fields created for the CGI data passed in your webpage must simply look like this:
<form> [$ hidden $] </form>
And Embperl expands it's hidden tag into the CGI query data automatically.

For comparison, this is not available under HTML::Mason and I cannot comment on the other fairly complete web application frameworks (HTML::EP, Apache::PageKit, and BingoX (which is on sourceforge, not CPAN) with regard to this feature.