#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; use CGI qw//; my $din = { qw{ name1 N/A name10 N/A name100 N/A name100_drp N/A name101 N/A name101_drp N/A name102 N/A name102_drp N/A name103 N/A name103_drp N/A name104 N/A name104_drp N/A name105 N/A }}; dd( $din ); my $q = CGI->new( $din ); print $q->self_url, "\n"; for my $k ( sort $q->param ) { if ($k =~ /(.+)_drp$/){ print join'|', scalar $q->param( $1 ), scalar $q->param( $k )."\n"; } } __END__ { name1 => "N/A", name10 => "N/A", name100 => "N/A", name100_drp => "N/A", name101 => "N/A", name101_drp => "N/A", name102 => "N/A", name102_drp => "N/A", name103 => "N/A", name103_drp => "N/A", name104 => "N/A", name104_drp => "N/A", name105 => "N/A", } http://localhost?name10=N%2FA;name102_drp=N%2FA;name100=N%2FA;name1=N%2FA;name100_drp=N%2FA;name101=N%2FA;name104=N%2FA;name101_drp=N%2FA;name102=N%2FA;name103=N%2FA;name105=N%2FA;name104_drp=N%2FA;name103_drp=N%2FA N/A|N/A N/A|N/A N/A|N/A N/A|N/A N/A|N/A