Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Hash of array of hashes

by Anonymous Monk
on Jul 08, 2005 at 06:12 UTC ( [id://473342]=perlquestion: print w/replies, xml ) Need Help??

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

Hi Monks, I am trying to create a Hash or array of hashes for the following condition
1 | p1=v1,p2=v2 | p3=v3,p4=v4
My hash of array of hashes should be some thing like this
%hash = ( 1 => [ {p1 => v1, p2 => v2}, {p3 => v3, p4 => v4} ] );
I have written the following code. It seems to be not working, can any one suggest what is wrong in this snippet
my @conditioin = split(/\|/); %{$mapping_rule{$condition[0]}}->[0]} = map {split (/=/, $_)} = map {s +plit (/\,/, $condition[1])}; %{$mapping_rule{$condition[0]}}->[1]} = map {split (/=/, $_)} = map {s +plit (/\,/, $condition[2])}; foreach my $rule (keys %mapping_rule) { print "rule is $rule\n"; foreach my $cond (@{$mapping_rule{$rule}}) { foreach my $param (keys %{$mapping_rule{$rule}->{$cond}}) { print "Parameter is $param and value is ${$mapping_rule{$r +ule}->{$cond}->{$param}}\n"; } } }

Replies are listed 'Best First'.
Re: Hash of array of hashes
by monarch (Priest) on Jul 08, 2005 at 06:38 UTC
    Solved!

    Produces:

    $VAR1 = { '1' => [ { 'p2' => 'v2', 'p1' => 'v1' }, { 'p3' => 'v3', 'p4' => 'v4' } ] };
      Thanks, that was really fast and really good.
Re: Hash of array of hashes
by sh1tn (Priest) on Jul 08, 2005 at 06:28 UTC
    ... foreach my $cond (@{$mapping_rule{$rule}}) { foreach my $param (keys %{$cond}) { ...


Re: Hash of array of hashes
by ww (Archbishop) on Jul 08, 2005 at 14:06 UTC

    You may wish to note that $condition[0] does not relate to any element of @conditioin ...which is just one of the examples in your original post that show why using strict and warn is such good practice.
    the (relevant) others are:

    Unmatched right curly bracket at mapping.pl line 7, at end of line syntax error at mapping.pl line 7, near "]}"

    Perhaps these are merely typos created while posting your question; if so, another recommendation: cut and paste code, rather than risk introducing irrelevant typos (or, as has occasionally occured, fixing a problem by eliminating a typo).

Log In?
Username:
Password:

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

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

    No recent polls found