my $ids = {}; my @params = $cgi->param(); foreach my $param ( @params ) { my ($id, $field) = $param =~ /^(\d+)_(.*)$/; $ids->{$id}->{$field} = $cgi->param($param); }