# 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"; } #### h_tag:h_val => MSGTYPE:new Incrementing a hash entry: MSGTYPE:new=>12 h_tag:h_val => EXECSERVPRODUCT:ARID Adding a new hash entry: EXECSERVPRODUCT:ARID=>1 h_tag:h_val => GCCI.PRODUCT.FLOW:ATS Incrementing a hash entry: GCCI.PRODUCT.FLOW:ATS=>13 h_tag:h_val => MSGTYPE:new Incrementing a hash entry: MSGTYPE:new=>13 h_tag:h_val => EXECSERVPRODUCT:TWAP Adding a new hash entry: EXECSERVPRODUCT:TWAP=>1 h_tag:h_val => GCCI.PRODUCT.FLOW:ATS Incrementing a hash entry: GCCI.PRODUCT.FLOW:ATS=>14 h_tag:h_val => MSGTYPE:new Incrementing a hash entry: MSGTYPE:new=>14 h_tag:h_val => EXECSERVPRODUCT:CLOSE Adding a new hash entry: EXECSERVPRODUCT:CLOSE=>1 h_tag:h_val => GCCI.PRODUCT.FLOW:ATS Incrementing a hash entry: GCCI.PRODUCT.FLOW:ATS=>15 h_tag:h_val => MSGTYPE:new Incrementing a hash entry: MSGTYPE:new=>15 h_tag:h_val => EXECSERVPRODUCT:AQUA Adding a new hash entry: EXECSERVPRODUCT:AQUA=>1 ULM: 8=FIX.4.2|9=898|35=UL|49=EMC01|56=EMSECS|34=6007|52=20120221-09:59:47|212=831|#EXDESTINATION=L|#GCCI.PRODUCT.EXECUTION_REGION=EMEA|#GCCI.PRODUCT.EXECUTION_SUB_REGION=EMEA|#IDSOURCE=5|#ONBEHALFOFCOMPID=P2|#SECURITYID=VOD.L|#SYMBOL=VOD.L|CLORDID=GGPHCJP9459dd|CREATIONTIME=20120221095947|EXDESTINATION=L|EXECSERVPRODUCT=AQUA|GCCI.CLIENT.COMPID=P2|GCCI.CLIENT.FIXSESSION=TEST_|GCCI.INSTRUMENT.REUTERS_EXCHANGE=L|GCCI.PRODUCT.EXECUTION_REGION=EMEA|GCCI.PRODUCT.EXECUTION_SUB_REGION=EMEA|GCCI.PRODUCT.FLOW=ATS|HANDLINST=care|MSGTYPE=new|ONBEHALFOFCOMPID=P2|ORDERQTY=1|ORDSTATUS=pendingnew|ORDTYPE=market|PLUGINORIGINATOR=TEST__GEN|PLUGINOWNER=TEST__GEN|RICCODE=VOD.L|ROOTCLIENTORDERID=JP9459dd|SENDERCOMPID=TEST_|SIDE=buy|SYMBOL=VOD.L|TARGETCOMPID=_|TIMEINFORCE=day|TRANSACTTIME=20120221095945806|ULFROMSESSIONNAME=TEST__GEN|ULTOSESSIONNAME=PULM_EMC01_EMSECS||10=219| h_tag:h_val => GCCI.PRODUCT.FLOW:ATS Incrementing a hash entry: GCCI.PRODUCT.FLOW:ATS=>16 h_tag:h_val => MSGTYPE:new Incrementing a hash entry: MSGTYPE:new=>16 h_tag:h_val => EXECSERVPRODUCT:TWAP Adding a new hash entry: EXECSERVPRODUCT:TWAP=>1 h_tag:h_val => GCCI.PRODUCT.FLOW:ATS Incrementing a hash entry: GCCI.PRODUCT.FLOW:ATS=>17 h_tag:h_val => MSGTYPE:new Incrementing a hash entry: MSGTYPE:new=>17 h_tag:h_val => EXECSERVPRODUCT:AQUA Adding a new hash entry: EXECSERVPRODUCT:AQUA=>1 ULM: 8=FIX.4.2|9=898|35=UL|49=EMC01|56=EMSECS|34=6009|52=20120221-09:59:47|212=831|#EXDESTINATION=L|#GCCI.PRODUCT.EXECUTION_REGION=EMEA|#GCCI.PRODUCT.EXECUTION_SUB_REGION=EMEA|#IDSOURCE=5|#ONBEHALFOFCOMPID=_P4|#SECURITYID=VOD.L|#SYMBOL=VOD.L|CLORDID=GGPHCJP9461dd|CREATIONTIME=20120221095947|EXDESTINATION=L|EXECSERVPRODUCT=AQUA|GCCI.CLIENT.COMPID=_P4|GCCI.CLIENT.FIXSESSION=TEST_|GCCI.INSTRUMENT.REUTERS_EXCHANGE=L|GCCI.PRODUCT.EXECUTION_REGION=EMEA|GCCI.PRODUCT.EXECUTION_SUB_REGION=EMEA|GCCI.PRODUCT.FLOW=ATS|HANDLINST=care|MSGTYPE=new|ONBEHALFOFCOMPID=_P4|ORDERQTY=1|ORDSTATUS=pendingnew|ORDTYPE=market|PLUGINORIGINATOR=TEST__GEN|PLUGINOWNER=TEST__GEN|RICCODE=VOD.L|ROOTCLIENTORDERID=JP9461dd|SENDERCOMPID=TEST_|SIDE=buy|SYMBOL=VOD.L|TARGETCOMPID=|TIMEINFORCE=day|TRANSACTTIME=20120221095945806|ULFROMSESSIONNAME=TEST__GEN|ULTOSESSIONNAME=PULM_EMC01_EMSECS||10=213| HASH OF HASH! GCCI.PRODUCT.FLOW: ATS=17 MSGTYPE: new=17 EXECSERVPRODUCT: AQUA=1