Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: how to pull in all params that are numbered

by sulfericacid (Deacon)
on Jun 07, 2007 at 01:00 UTC ( [id://619708]=note: print w/replies, xml ) Need Help??


in reply to how to pull in all params that are numbered

Not the best method but the quickest I thought of. Just send a hidden field with a list of comma separated values to your form. Ie: input type="hidden" name="numbers" value="1,2,3,6,8,9"); Since you're popping out the forum dynamically since you stated sometimes the numbers will change, just pop a list while printing the form.

Update

while(param()) { push (@num, $_) if $_ ~= m/^d$+/ } might work



"Age is nothing more than an inaccurate number bestowed upon us at birth as just another means for others to judge and classify us"

sulfericacid

Replies are listed 'Best First'.
Re^2: how to pull in all params that are numbered
by imp (Priest) on Jun 07, 2007 at 02:00 UTC
    You should iterate the parameter list with for, not with while - while will result in an infinite loop.
      Actually it didn't result in an infinite loop and I asked in the chatterbox prior to posting and two other people said that param() should stop the loop once it's iterated through with for(). I could be wrong but when I tested it, it worked and stopped once the page loaded.


      "Age is nothing more than an inaccurate number bestowed upon us at birth as just another means for others to judge and classify us"

      sulfericacid
        The problem is that while does not iterate over a list, it simply checks for a true value. For example, while (1){} will run forever, whereas for (1){} will run once.

        The same behaviour occurs when test being evaluated is param(). Additionally, while (param()){} will not modify $_. Perhaps you tested the script without any arguments, in which case it would have behaved as expected.

        Here is a simple test:

        #!/usr/bin/perl use strict; use warnings; use CGI qw(param); my $runs =0; my @num; print "Content-type: text/plain\n\n"; while(param()) { printf "run %d\n", $runs++; if ($runs > 10) { print "Ran over 10 times\n"; exit; } }
        You can verify it by adding the parameters on the commandline, e.g.
        perl foo.pl a=b

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://619708]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2024-04-20 06:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found