Contributed by Zombie ltran
on Jul 03, 2001 at 13:07 UTC
Q&A
> CGI programming
Description: How would I pass the values entered in the textfield into a hash as parameters i.e.
people would enter something like this in the textfield;
1=>4, 3=>8
and I would like to pass these as key-value pairs into a hash. How would I do it? Answer: how do i pass values entered in the textfield into a hash ? contributed by davorg Assuming that you've already used CGI.pm and
declared the hash. And also that the text field
is called hashdata...
foreach (split /,\s*/, param('hashdata')) {
my ($k, $v) = split(/=>/);
$hash{$k} = $v;
}
If you know the hash is going to be empty at
the start, then it gets a bit simpler...
%hash = map { split /=>/ }
split /,\s*/, param('hashdata');
| Answer: how do i pass values entered in the textfield into a hash ? contributed by tachyon You might also want to add a little data filtration on the keys and values to at least strip leading and trailing whitespace otherwise "a=>4" will generate a different key to say " a =>4". Something like:
foreach (split /,\s*/, param('hashdata')) {
my ($k, $v) = split(/=>/);
whitespace(\$k,\$v);
$hash{$k} = $v;
}
sub whitespace {
while (my $ref = shift){
$$ref =~ s/^\s+|\s+$//g
}
}
We pass the sub references to the variables so we can change them in the sub and not bother having to return the changed values and assign them.
cheers
tachyon |
Please (register and) log in if you wish to add an answer
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|