in reply to CGI question: carrying information from CGI to CGI

You could investigate using cookies instead of hidden form fields.

Cookies are quite simple w/ CGI.pm. To set a cookie:

use CGI; my $query = new CGI; my $cookie = $query->cookie(-name => 'id', -value => 'foo'); print $query->header(-cookie => $cookie);
To retrieve a cookie:
use CGI; my $query = new CGI; my $id = $query->cookie(-name => 'id');
There are other parameters you can set for a cookie--read the CGI.pm docs to find out about them.