use strict;
use warnings;
use CGI;
my $q = CGI::new;
# or however you get your $q ...
# input names look like "id1~id2~id3"
# or pick a delimiter you like instead of ~
for my $param ($q->param) {
# print "$param
\n";
next unless $param =~ /.*(?:~.+){2}/;
my ($id1,$id2,$id3) = split(/~/,$param);
# print "$id1 - $id2 - $id3
\n";
# ...
}