What would be the best way to omit any record when varible $dist is null or not > 1 ?
I am not sure my attempt is correct with the ternary operator with length function. It seems that $dist is just being assinged 0 when the expression $dist is not > 1. Any help is greatly appreciated. Thank you, Chris #!/usr/bin/perl use warnings; use strict; use POSIX; my $filepath = sprintf("F:/Backup/MySQL/10072810.EVDOPCMD"); my $runTime = sprintf("C:/%s.txt",strftime("%y%m%d%H%M",localtime)); #my $fileDate = strftime("%y%m%d%H%",localtime); open my $fh, '<', $filepath or die "ERROR opening $filepath: $!"; open my $out, '>', $runTime or die "ERROR opening $runTime: $!"; my %sum; while (<$fh>){ next unless /;/; chomp; my @data = split /;/; my($cell,$sect,$chan,$rlp1,$rlp2,$rlp3,$rlp4,$dist) = @data[31,32,38,44,45,46,47,261]; if( $cell >= 1 && $cell <= 900 && $sect >= 1 && $sect <= 6 ) { my $carr = ( $cell <= 299 && $chan == 175 ) ? 2 : ( $cell >= 300 && $cell <= 599 && $chan == 75 ) ? 2 : ( $chan == 1025 ) ? 2 : 1 ; $dist = sprintf "%.1f", ( length( $dist ) > 1 ) ? $dist/8/6.6/2 : 0; for my $i (44..47) { my $rlp = $data[$i]; $sum{$cell}{$sect}{$carr}{$dist} += $rlp if $rlp; } } } my @data; my $lastDist = 0.0; for my $cell ( sort keys %sum ) { for my $sect ( sort keys %{$sum{$cell}} ) { for my $carr ( sort keys %{$sum{$cell}{$sect}} ) { $lastDist= 0.0; for my $dist ( sort keys %{$sum{$cell}{$sect}{$carr}} ) { for(my $i = $lastDist * 10; $i < $dist * 10; $i++) { push( @data, [ 0, $cell, $sect, $carr, sprintf("%0.2f",$i/10),]); } $lastDist=$dist+.1; push( @data, [ $sum{$cell}{$sect}{$carr}{$dist}, $cell, $sect, $carr, $dist,]); } } } } for my $record ( sort { $a->[1] <=> $b->[1] || $a->[2] <=> $b->[2] || $a->[3] <=> $b->[3] || $a->[4] <=> $b->[4] } @data ) { my( $val, $cell, $sect, $carr, $dist ) = @$record; print $out "$cell\t $sect\t $carr\t $dist\t $val\n"; } close $out; -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/