I believe I have a fix for this issue:
http://code.google.com/p/brackup/issues/detail?id=5The problem is that many of the targets use a file-slurp idiom that confuses IO::InnerFile.
Here is some example code that illustrates the problem:
use strict;
use warnings;
use IO::File;
use IO::InnerFile;
my $fullpath = 'path/to/4gb-file';
my $fh = IO::File->new($fullpath, 'r');
binmode($fh);
my $ifh = IO::InnerFile->new($fh, 0, 20971520);
# Proposed method of reading chunk
my $chunkref;
while(<$ifh>){
$chunkref .= $_;
}
warn length $chunkref; # outputs 20971520
# Old method
my $chunkref2 = do { local $/; <$fh> };
warn length $chunkref2; # never gets here, grows to size of file
My proposed diff is attached.
Let me know how to go about getting it integrated - this bug blocks me backing up my videos, so I'm excited to get it moving. :)
Thanks for the cool backup tool,
-m