Either I've found a problem with Apache::Request, or I don't know what I'm
doing :)

Setting variables with $r->param() doesn't seem to work for array
references.  ie the following line from the man page doesn't work
correctly

$r->param('foo' => [qw(one two three)]);

When you look at foo afterwards it returns the string 'ARRAY(0x8c04fd8)'
instead of an actual reference to the array.  

I have include a basic handler that demostrates this on my machine
(Apache/1.3.17 mod_perl/1.24 perl 5.005_03)


package Apache::Test;
# File: Apache/Test.pm

use strict;
use Apache::Constants qw(:common);
use Apache::Request ();

sub handler {
        my $r = new Apache::Request(shift);

        $r->content_type('text/html');
        $r->send_http_header();

        my @list = $r->param('list');

        $r->param('newlist' => [qw(one two three)]);

        my @newlist = $r->param('newlist');

        my $list = join ', ', @list;
        my $newlist = join ', ', @newlist;
        print <<"EOM";

<HTML>
<BODY>
list - $list<BR>
newlist - $newlist<BR>
<BR>
<FORM>
<SELECT NAME="list" MULTIPLE>
  <OPTION>Blue
  <OPTION>Green
  <OPTION>Red
  <OPTION>Yellow
</SELECT>
<INPUT TYPE="submit">
</FORM>
</BODY>
</HTML>
EOM

return OK;
}

1;



-- 
Cees Hek
SiteSuite Corporation
[EMAIL PROTECTED]

Reply via email to