Flame has asked for the wisdom of the Perl Monks concerning the following question:
This is really strange, but I'm not quite sure how to explain it. I have a project (full source available at Flame's scratchpad *the school project listing*) and I use Apache::Request on it. Now I've been using Apache::Request's param method to get the current params, however I'm running into a bit of difficulty now that I am using one paramater with multiple values. Now around line 113 I convert the params to a hash using the following:
my %ARGS; { #Localize @temp since I won't need it later my @temp = $state->{'r'}->param(); foreach (@temp){ $ARGS{$_} = $state->{'r'}->param($_); } }
This has worked up till now, when I needed that second value. I attempted, where I needed it (roughly line 985, the sub browse), to use the following:
my @schedules = $state->{'r'}->param('browseselect'); return qq~<tr><td>~.Dumper(@schedules).qq~</td></tr>~;
As a simple test to see that it could get these values out, however when I attempt this, the apache thread seems to lock up. As a further experement I changed the initial setup of the %ARGS hash to this:
my %ARGS; { my @temp = $state->{'r'}->param(); foreach (@temp){ $ARGS{$_} = (scalar(@{ [$state->{'r'}->param($_)] }) > 1 ? [$ +state->{'r'}->param($_)] : $state->{'r'}->param($_)) ; } }
After this change, suddenly everything is working and yielding the expected results. So I now find myself wondering why the difference. I admit this is poorly described here, I'm not sure I fully understand my question myself, but I'm really confused here. Thanks for any assistance you can give.
My code doesn't have bugs, it just develops random features.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Apache::Request and param($x) infinite loop?
by Lhamo Latso (Scribe) on Mar 19, 2003 at 06:35 UTC | |
by Flame (Deacon) on Mar 19, 2003 at 16:33 UTC | |
|
Re: Apache::Request and param($x) infinite loop?
by Flame (Deacon) on Mar 20, 2003 at 00:17 UTC |