in reply to Multiple CGI Objects w/ Same Name

Take a longer look at the CGI.pm documentation. It is designed to have a query object (your $q) get values from get/post, from a file, or manually set. And since you can set it manually, you can use it to collect values from more than one of these source types. It seems like it should be what you need.

Note, you would be doing all this on one such query object.