1 | p1=v1,p2=v2 | p3=v3,p4=v4 #### %hash = ( 1 => [ {p1 => v1, p2 => v2}, {p3 => v3, p4 => v4} ] ); #### my @conditioin = split(/\|/); %{$mapping_rule{$condition[0]}}->[0]} = map {split (/=/, $_)} = map {split (/\,/, $condition[1])}; %{$mapping_rule{$condition[0]}}->[1]} = map {split (/=/, $_)} = map {split (/\,/, $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{$rule}->{$cond}->{$param}}\n"; } } }