$query = new CGI; @form_field_names = $query->param; foreach $field_num_pair (@form_field_names) { ($field, $index) = split(/_/, $field_num_pair); $form_values{$index}{$field} = $query->param($field_num_pair); }