$fulllookupKey = $field[19].' '. $field[20].' '. $field[17].' '.$field[10].' '.$field[23]; if (exists($output{$fulllookupKey})) { $output{$fulllookupKey}->[0] += $field[4]; $output{$fulllookupKey}->[1] += $field[21]; } else { $output{$fulllookupKey}->[0] = $field[4]; $output{$fulllookupKey}->[1] = $field[21]; } } for my $key (sort keys %output) { my $Summry = substr($key,0,7); my $Summary; if ($load_data{$Summary}) { $Summary; = $load_data{$Summary}; } my $Summry1 = substr($key,8,7); my $Detial_Summary; my $Source = substr($key,16,100); if ($load_data1{$Detial_Summary}) { $Detial_Summary = $load_data1{$Detial_Summary}; } print Out $Summary;." \t" . " \t" . " \t". "\t" ."\t" ."\t" ."\n"; print Out " \t" . $Detial_Summary." \t" . " \t" . " \t". "\t" ."\t" ."\t" . "\t" ."\n"; print Out " \t" . " \t" . $Source."\t".sprintf("%.2f", $output{$key}->[0])."\t".sprintf("%.2f", $output{$key}->[1])."\n"; }