in reply to Hashes of Hash in perl
in thread Perl Hash

Is this post a continuation of this thread Perl Hash ?

Replies are listed 'Best First'.
Re^2: Hashes of Hash in perl
by Rajsai2825 (Novice) on Apr 17, 2013 at 10:40 UTC
    Yes

      I do not understand why you have not followed advice given in earlier thread but here is your code cleaned somewhat and running. Pls state what you want to achieve.

      use strict; use warnings; my %output; while (my $line = <DATA>){ chomp $line; my @field = split /\s+/, $line; my $fulllookupKey = $field[1]."\t". $field[2]."\t". $field[3]."\t +".$field[4]."\t".$field[5]; my $RescatKey = $field[0]; my $RessubcatKey = $field[1]; my $MasterSrkey = $field[2]; $output{$RescatKey}{$RessubcatKey}{$fulllookupKey}->[0] += $field[ +6]; $output{$RescatKey}{$RessubcatKey}{$fulllookupKey}->[1] += $field[ +7]; } for my $k1 (sort keys %output){ print "$k1\n"; for my $k2 ( sort keys %{ $output{$k1} } ) { print "\t$k2\n"; for my $k3 ( sort keys %{ $output{$k1}{$k2} } ) { my $Source = substr($k3,15,100); print "\t\t$Source $output{$k1}{$k2}{$k3}->[0] +\t$output{$k1}{$k2}{$k3}->[1]\n"; print "\t\t$Source\t TOTAL \t$output{$k1}{$k2} +{$k3}->[1]\t$output{$k1}{$k2}{$k3}->[0]\n"; } } } __DATA__ Summary Detial_Summary EMC CHECK abcdefghi AZ_checker 1 20.32 Summary Detial_Summary EMC CHECK abcdefghi AZ_checker 1 24.00 Summary Detial_Summary EMC CHECK KBCDEFGHI AZ_checker 1 10.00 Summary Detial_Summary EMC CHECK KBCDEFGHI AZ_checker 1 14.00 Summary1 Detial_Summary1 EMC CHECK1 abcdefghi AZ_checker 1 20.59 Summary1 Detial_Summary1 EMC CHECK1 abcdefghi AZ_checker 1 24.00 Summary1 Detial_Summary1 EMC CHECK1 HGIJHKKIF AZ_checker 1 10.00 Summary1 Detial_Summary1 EMC CHECK1 HGIJHKKIF AZ_checker 1 14.00
        Hi, I have incorporated the advice given earlier. but i want to achive the output as below.
        Summary................................................ Detial_Summary................................... EMC CHECK abcdefghi AZ_checker 2 44.32 EMC CHECK KBCDEFGHI AZ_checker 2 24.00 EMC CHECK TOTAL 4 64.32 EMC CHECK1 abcdefghi AZ_checker 2 44.59 EMC CHECK1 HGIJHKKIF AZ_checker 2 24.00 EMC CHECK1 TOTAL 4 68.59 Detial_Summary TOTAL 8 132.91 Summary TOTAL 8 132.91
        The output what i am getting now:
        Summary................................................ Detial_Summary................................... EMC_CHECK abcdefghi AZ-Chandler 44.32 +2 EMC_CHECK abcdefghi AZ-Chandler TOTAL + 44.32 2 EMC_CHECK KBCDEFGHI AZ-Chandler 24.00 +2 EMC_CHECK abcdefghi AZ-Chandler TOTAL 24.00 + 2
        but i want output as below:
        Summary................................................ Detial_Summary................................... EMC_CHECK abcdefghi AZ-Chandler 44.32 +2 EMC_CHECK KBCDEFGHI AZ-Chandler 24.00 +2 EMC_CHECK TOTAL 68.32 4 Detial_Summary TOTAL 68.32 4 Summary TOTAL 68.32 4