use strict; use CGI; my $cgi = new CGI; my %data = $cgi->Vars(); my %result; foreach(sort {substr($a,2) <=> substr($b,2)} keys %data){ my ($desc, $num) = split(/ ?- ?/, $data{$_}); $result{$_} = {Desc => $desc, Num => $num}; }