# Creation of a hash of anonymous hash # Model is : KeyTag => { KeyVal => Frequency } # Example: 35 => { D => 10 } # 35 => { G => 3 } foreach $h_tag (@ulm_tags){ $ulm_keys{$h_tag}{"FAKE"} = "FAKE"; # [ULM TAGS]: [ MSGTYPE | GCCI.PRODUCT.FLOW | EXECSERVPRODUCT ] # %ULM KEYS: GCCI.PRODUCT.FLOW => { 1 => 1 } # %ULM KEYS: MSGTYPE => { 1 => 1 } } # Populating the hash of anonymous hash while (($key, $value) = each(%ulm_msg)) { foreach $h_tag (keys %ulm_keys) { if($value =~ /$h_tag/){ $value =~ /\|$h_tag=([^|]*)/; $h_val = $1; printf "\nh_tag:h_val => ".$h_tag.":".$h_val."\n"; if(exists $ulm_keys{$h_tag}{$h_val}){ $ulm_keys{$h_tag}{$h_val} => $ulm_keys{$h_tag}{$h_val}++; printf "Incrementing a hash entry: ".$h_tag.":".$h_val."=>".$ulm_keys{$h_tag}{$h_val}."\n"; } else{ $ulm_keys{ $h_tag } = { $h_val => 1, }; printf "Adding a new hash entry: ".$h_tag.":".$h_val."=>".$ulm_keys{$h_tag}{$h_val}."\n"; if($h_val eq "AQUA"){ printf "ULM: ".$value."\n"; } } } } } # Display the Hash printf "\n\nHASH OF HASH\n\n"; for $h_tag ( keys %ulm_keys ) { print "$h_tag: "; for $h_val ( keys %{ $ulm_keys{$h_tag} } ) { print "$h_val=$ulm_keys{$h_tag}{$h_val} "; } print "\n"; }