in reply to CGI.pm file uploads in very generic script
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
$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.