Подскажите, люди умные 

Ситуация следующая, выдаю файл через скрипт:
$filepath="/upload/blabla.zip";
$filename="blabla.zip";
my $size = -s $filepath;
my $range = 0;   # Нижняя граница
my $rlow = 0;   # Верхняя граница
my $rhigh = $size - 1;
if ($size && $ENV{HTTP_RANGE} =~ /^bytes=(\\d*)-(\\d*)/)
{
  $range = 1;
  if ($2 eq \'\' && $1 > 0)
  {
    $rlow = $1;
  }
  elsif ($1 eq \'\' && $size - $2 > 0)
  {
    $rlow = $size - $2;
  }
  elsif ($1 <= $2)
  {
    $rlow = $1;
    $rhigh = $2;
  }
  else
  {
    $range = 0;
  }
}
# Выводим заголовки
if ($range)
{
  print "Status: 206 Partial Content\\n";
  print "Content-Range: bytes $rlow-$rhigh/$size\\n";
  $size = $rhigh - $rlow + 1;
}
print "Accept-Ranges: bytes\\n";
print "Content-Length: $size\\n" if ($size > 0);
print "Content-Type: application/octet-stream; name=$filename\\n";
print "Content-Disposition: attachment; filename=\\"$filename\\"\\n\\n";
my $BufferSize = 1024;
my $buf = \'\';
$BufferSize = $size if ($BufferSize > $size);
# Вывод содержимого файла
open(DATAFILE, $filepath);
binmode(DATAFILE);
binmode(STDOUT);
seek(DATAFILE,$rlow,0);
while (read(DATAFILE,$buf,$BufferSize))
{
  my $delta = $rhigh - tell() + 1;
  print $buf;
  last if ($delta < 1);
  $BufferSize = $delta if ($BufferSize > $delta);
}
close DATAFILE;
Возможно ли в данном случае отследить, что файл скачан от начала до конца? 
Этим скриптом пытался сохранять размер каждого скачанного кусочка
в отдельном файле, потом когда все сложил - получился отличный размер от реального...
Была мысль парсить логи, но при закачке в несколько потов, в логах непонятные цифры, т.е. складывая их получается опять таки немного отличный размер от реального, причины не нашел... помогите...