use Data::Dump qw/ dd /; use CGI; my $q = CGI->new('ro=row;ro=you;bo=boat;bo=diddly'); my %in = map { $_ => [ $q->param($_) ] } $q->param ; dd( \%in ); __END__ { bo => ["boat", "diddly"], ro => ["row", "you"] }