Jim, I have another question.
How do I sort the results so it is from smallest to largest starting with $cell,$sect,$carr? Thanks again for all you help. I am gaining a much better understanding. This is what I got: #!/usr/bin/perl use warnings; use strict; #my $filepath = 'C:/temp/PCMD'; #my $filepath = 'C:/cygwin/home/cstinemetz/perl_programs/1.EVDOPCMD'; # my $outfile = 'output.txt'; #open my $fh, '<', $filepath or die "ERROR opening $filepath: $!"; # open my $out, '>', $outfile or die "ERROR opening $outfile: $!"; my %sum; #my @records = (); while (<DATA>){ next unless /;/; chomp; my @data = split /;/; my($cell,$sect,$chan,$carr,$rlptxat1,$rlptxat2,$rlptxat3,$rlptxat4,$dist,$precis) = @data[31,32,38,39,44,45,46,47,261,262]; $carr = ( $chan == 75 ) ? 2 : ( $chan == 1025 ) ? 2 : 1 ; #nested ternary operator $dist = ( length( $dist ) > 1 ) ? $dist/6.6/8/2*10/10 : 0 ; $sum{$cell}{$sect}{$carr}{$dist} += $rlptxat1 += $rlptxat2 += $rlptxat3 += $rlptxat4 || 0 ; } for my $cell ( sort keys %sum ) { for my $sect ( sort keys %{$sum{$cell}} ) { for my $carr ( sort keys %{$sum{$cell}{$sect}} ) { for my $dist ( sort keys %{$sum{$cell}{$sect}{$carr}} ) { print "$cell\t $sect\t $carr\t $dist\t" . $sum{$cell}{$sect}{$carr}{$dist} . "\n"; } } } } And this is the current output: 10 2 1 0.710227272727273 439 100 1 1 0 469 100 2 1 0 3207 101 3 1 0 96 102 3 1 0 1623 107 1 1 0 48 109 2 1 0 49 11 2 1 0 48 110 3 1 0.681818181818182 49 114 3 1 0 48 121 2 1 2.78409090909091 3628 -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/