use strict; use warnings; my (%covered); open my $m, '<', 'count_try.txt' or die 'Cannot open count_try.txt'; while (my $seq = <$m>) { chomp $seq; my ($start, $range) = split /\t/, $seq; my ($fm,$to) = split /\.\./,$range; my $end = $start + 149; $end = $to if $end > $to; for(my $i=$start;$i<=$end;$i++) { $covered{$range}{$i} = 1 } } for my $range (keys %covered) { printf "Coverage in range %s is %d\n",$range,scalar keys %{$covered{$range}} } close $m;