Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Hash with one key, three values

by ggg (Scribe)
on Nov 14, 2004 at 23:04 UTC ( [id://407728]=perlquestion: print w/replies, xml ) Need Help??

ggg has asked for the wisdom of the Perl Monks concerning the following question:

In playing around with Perl & html forms, I read a form variable from a "textarea" tag and get a hash that has one key and more than one value. How do I separate out the values so I can loop through them later in the program?
This is what Data::Dumper shows me.
$VAR1 = { 'NumbList' => 'one two three ' };
ggg

Replies are listed 'Best First'.
Re: Hash with one key, three values
by pg (Canon) on Nov 14, 2004 at 23:27 UTC
    "I read a form variable from a "textarea" tag and get a hash that has one key and more than one value."

    You misunderstood what you got. That is simply a hash with ONE key-value pair. But the value is ONE multiline string.

    Just split that string on line breaks, that gives you a list of lines, and you can loop through the list.

Re: Hash with one key, three values
by biosysadmin (Deacon) on Nov 14, 2004 at 23:13 UTC
    You want a hash of arrays. Basically, you'll end up with a hash that looks like this:
    $hash = { 'key' => ['one', 'two', 'three'] }
    If you already have the hash that you show above, here's how to make a hash of arrays from your old hash:
    while ( my ($key,$string) = each %oldhash ) { my @elements = split /\s+/, $string; $newhash{$key} = \@elements; } # You can now access data from it like this: # print the first element in the array referred to by $key print $newhash{$key}->[0], "\n"; # print out all of the elements for a given key print "$key: ", join @{$newhash{$key}}, '-', "\n";
    Also, try out Ovid's Data::Dumper::Simple. It's a clever module which prints out data dumps in a more descriptive way. Cheers. :)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2024-04-25 16:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found