in reply to CGI.pm file uploads in very generic script

G'day amelinda,

CGI's append function varies in behaviour depending upon what it's second argument is. If passed a list reference as a second argument, it appends all those values onto the list of values associated with that given parameter. If the second argument is a scalar, then only that scalar is appended. The third and subsequent arguments are silently ignored.

Here's some example code:

$q->append("foo","hello"); # Adds "hello" to foo's list of v +alues. $q->append("foo","hello","world"); # As above, world is ignored. $q->append("foo",["hello","world"]); # appends both hello and world to + foo's values.

Hope that this helps clarify things.

Cheers,
Paul

Replies are listed 'Best First'.
Re: Re: CGI.pm file uploads in very generic script
by amelinda (Friar) on Nov 14, 2001 at 05:06 UTC
    I think I understand what you mean. But I'd like to clarify it just a little further.

    So, if we have:

    $q->param('foo', 'junk'); $q->append('foo', "$something");
    is 'foo' now "junk$something" or is it ["junk", "$something"]?
      The latter. ["junk","$something"];

      If you want to turn that into the first (ie, one big concatenated string), you can do this:

      $q->param("foo",join("",$q->param("foo")));

      Cheers,
      Paul