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"; } } }