in reply to Apache::Request and param($x) infinite loop?

I may be naive here, but I see that your working solution is accessing the return from Apache::Request::param() as an anonymous array reference. If the request module is going to return multiple values, it would need to be an array/list?!?

So, your code [$state->{'r'}->param($_)] looks to be the correct access method. The question is, why not check to see if the returned value is a ref?

Replies are listed 'Best First'.
Re^2: Apache::Request and param($x) infinite loop?
by Flame (Deacon) on Mar 19, 2003 at 16:33 UTC

    That's one of the oddities here. You see, until now none of my fields had to have multiple values, so the original solution was fine, and since I had only one field with mulitple values, I concluded that I could ignore its entry in the ARGS hash and simply re-request it, this time treating it as an array, which I believe could be done in using CGI, which Apache::Request claims to mimic with the differences stated in the docs. For some reason when I re-request it though after treating it like a scalar once, it get caught up in what seems to be an infinite loop (I haven't been able to locate the source so I can't say for sure, all I know is I need to restart apache to get it to respond again.)

    While my improvised solution would work, I don't want to re-write the rest of the code to adapt to only one section of code requiring multiple values, so I'm kinda stuck. (I'm concerned that someone will intentionally pass multiple values for some of the other fields at some point, which, in it's current state, it will ignore the second value onward of, but under the modification would be automatically converted to an array ref.)



    My code doesn't have bugs, it just develops random features.

    Flame ~ Lead Programmer: GMS (DOWN) | GMS (DOWN)