in reply to using CGI with different delimiter than '&'
What you have isn't a valid CGI parameter string. Therefore you can't really expect CGI.pm to be able to parse it. You'll have to write your own parser.
Not that that's going to be very difficult. On your example data, the following seems to work fine:
my %params = split /[+=]/, $ENV{QUERY_STRING}; print Dumper(\%params);
Update: The new examples that you've added won't work with my simple parser above. But this slightly more complex version seems to work:
use Data::Dumper; use Text::ParseWords; $ENV{QUERY_STRING} = 'DATABASE=inventory+SF=name\&title+param3="3+4"'; my %params = map { split /=/, $_, 2 } parse_line('\+', 0, $ENV{QUERY_S +TRING}); print Dumper(\%params);
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
|
|---|