http://www.perlmonks.org?node_id=70893


in reply to "Action" variables and form data

i've encountered this before. if you're using the same variable ( 'action' ), but trying to override the values, you have to:
$q->delete('action'); $q->param( -name => 'action', -value => 'update' );

CGI.pm does NOT swap the values in the $q object, but APPENDS them. substitute $action for @action, and you'll see what's happening. CGI.pm has silently converted your scalar value to a list value, and 'enter' is always the first in the list.