in reply to HTML::Form Phenomena

In your first code example you are looping over the keys of a hash
@keys=keys %$formh;
In the second, you loop over the values
@keys=values %$formh;
Accordingly the output looks different. The call to process() in the second case does nothing and has nothing to do with the difference.

It looks like you are running without strict and warnings. Switch them on, they're helpful.

Anno

Update: Added pointer to strict and warnings