in reply to CGI: stickier than I thought

Hi, I've been bitten by this one recently too.

From perldoc CGI:

Parameters:

The first argument is required and specifies the name of this field (-name).

The second argument is also required and specifies its value (-default). In the named parameter style of calling, you can provide a single value here or a reference to a whole list

Fetch the value of a hidden field this way:

$hidden_value = $query->param('hidden_name');
Note, that just like all the other form elements, the value of a hidden field is ``sticky''. If you want to replace a hidden field with some other values after the script has been called once you'll have to do it manually:
$query->param('hidden_name','new','values','here');
The value you supply to hidden via -value is a default value. In order to pass it in, you need to set it via param, or create another query object with nothing set.
my $q_unset = CGI->new(''); print $q_unset->hidden(-name=>'fubar',-value=>1);