my $myRange = $rangeEnd - $rangeStart; seek($fh,$rangeStart,0); my $currentIncrement=0; my $numberOfIncrements = $myRange / $readSz; do { $n1 = read($fh, $buf1, $readSz); # DO STUFF WITH $buf1 # $currentIncrement++; } until !defined($n1) || $n1 == 0 || $currentIncrement==$numberOfIncrements;