# Poor Man's CGI Module for Perl
#
# (c) 2002 Martin Mares <mj@ucw.cz>
+# Slightly modified by Tomas Valla <tom@ucw.cz>
#
# This software may be freely distributed and used according to the terms
# of the GNU Lesser General Public License.
our $arg_table;
-our $value_separator = "&";
-
sub parse_arg_string($) {
my ($s) = @_;
$s =~ s/\s+//;
if (my $rx = $arg->{'check'}) {
if (!/^$rx$/) { $_ = $arg->{'default'}; }
}
- if (${$arg->{'var'}} eq $arg->{'default'}) {
+
+ my $r = ref($arg->{'var'});
+ if ($r eq 'SCALAR') {
${$arg->{'var'}} = $_;
- } else {
- ${$arg->{'var'}} .= $value_separator.$_;
+ } elsif ($r eq 'ARRAY') {
+ push @{$arg->{'var'}}, $_;
}
}
}
sub parse_args($) {
$arg_table = shift @_;
foreach my $a (values %$arg_table) {
+ my $r = ref($a->{'var'});
defined($a->{'default'}) or $a->{'default'}="";
- ${$a->{'var'}} = $a->{'default'};
+ if ($r eq 'SCALAR') {
+ ${$a->{'var'}} = $a->{'default'};
+ } elsif ($r eq 'ARRAY') {
+ @{$a->{'var'}} = ();
+ }
}
defined $ENV{"GATEWAY_INTERFACE"} or die "Not called as a CGI script";
my $method = $ENV{"REQUEST_METHOD"};