From 6e025f09f33f8d01a7c9c0b645a39d29fc1b28e0 Mon Sep 17 00:00:00 2001 From: Tomas Valla Date: Sun, 20 Jul 2003 19:17:22 +0000 Subject: [PATCH] Added 'array' feature to handle multiple variable occurrences. --- lib/perl/CGI.pm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/perl/CGI.pm b/lib/perl/CGI.pm index a6b5302e..cf790880 100644 --- a/lib/perl/CGI.pm +++ b/lib/perl/CGI.pm @@ -1,6 +1,7 @@ # Poor Man's CGI Module for Perl # # (c) 2002 Martin Mares +# Slightly modified by Tomas Valla # # This software may be freely distributed and used according to the terms # of the GNU Lesser General Public License. @@ -38,8 +39,6 @@ sub html_escape($) { our $arg_table; -our $value_separator = "&"; - sub parse_arg_string($) { my ($s) = @_; $s =~ s/\s+//; @@ -55,10 +54,11 @@ sub parse_arg_string($) { if (my $rx = $arg->{'check'}) { if (!/^$rx$/) { $_ = $arg->{'default'}; } } - if (${$arg->{'var'}} eq $arg->{'default'}) { - ${$arg->{'var'}} = $_; + + if (defined $arg->{'array'}) { + push @{$arg->{'array'}}, $_; } else { - ${$arg->{'var'}} .= $value_separator.$_; + ${$arg->{'var'}} = $_; } } } @@ -67,7 +67,9 @@ sub parse_args($) { $arg_table = shift @_; foreach my $a (values %$arg_table) { defined($a->{'default'}) or $a->{'default'}=""; - ${$a->{'var'}} = $a->{'default'}; + die "Should define either 'var' or 'array'" if defined($a->{'var'})+defined($a->{'array'})!=1; + defined $a->{'var'} and ${$a->{'var'}} = $a->{'default'}; + defined $a->{'array'} and @{$a->{'array'}} = (); } defined $ENV{"GATEWAY_INTERFACE"} or die "Not called as a CGI script"; my $method = $ENV{"REQUEST_METHOD"}; -- 2.39.2