# get $start, $end my $bufsiz = 4096; my $total_length = $end-$start; my $chunks = int $total_length / $bufsiz; my $data; if ($chunks) { foreach (1 ... $chunks) { read (FILE, $data, $bufsiz); print $data; } } read (FILE, $data, $total_length % $bufsiz); print $data;