Hi. On 4 Aug 2004 at 14:20, Tom Schindl wrote:
> Oh. I see not a very heavy loaded service :-). Are you running the > server on win32? No slackware linux with Apache/1.3.26 (Unix) mod_perl/1.27 > > That besides, the above method didn't work (see mail to list > > "Accessing form multiples". I think you replied to it. Whenever I > > tried to loop through the incoming list of > > "user=dermot+paikkos&user=joe+blogs" I was only getting the first > > user. > > Although that's perl here's the explanation. > > because $r->param( "key" ) can be used in 2 contexts > (see perldoc -f wantarray). That's something very specific to > perl which you maybe not familiar with when have used langs > like java, c++, ...: Ha yes, well no, perl is the only language I have tried. I am a sysadmin not a developer. This is more like a hobby. Yes I have been stung by this in the past but with Regex. I think I was told i was calling it in the wrong context and I should use a slice. > 1. List-Context => returns list of values: > --------------------------------------------- > Example for list contexts: > @vals = $r->param("keys") > foreach( $r->param("keys") ) > @hash_slice{$r->param("keys")} > > 2. Scalar-Context => returns first value of list: > ------------------------------------------------- > $val = $r->param("keys") > $hash{$r->param("keys")} > > > > Still not sure why I can do > > > > my $r=Apache::Request->new(shift); > > my @users; > > foreach my $param ($r->param) { > > push(@users,$r->param($param)); > > } > > here you are in list context. > > @user{$apr->param("keys")} = (); > map { $user{$_} = 0 } keys %user; This looks tastey. I could learn something here. I think that is a slice....not too familar with map....better go back to the books. This is what was told to consider but to be honest I am not familiar with the hash slices or maps so I opted to stick the lot in an array as per your 2nd example. > > and not: > > > > my $r=Apache::Request->new(shift); > > my %users; > > foreach my $param ($r->parm) { > > %users{$r->param($param) = 0; > > } > > > > That's not valid syntax at all if you meant $user{$r->param($param)} = > 0 then you are here in scalar context. Opps, I meant $users{$r->param($param)}. Not that it would have worked. Sorry to labour on this. Better get off it now of the list grumble. Thanx again Tom. Dp. -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html