Archive-CAR
view release on metacpan or search on metacpan
lib/Archive/CAR/v1.pm view on Meta::CPAN
my $data_start = systell($fh);
# Header
my ($header_len) = Archive::CAR::Utils::decode_varint($fh);
return undef unless defined $header_len;
my $header_raw;
read( $fh, $header_raw, $header_len );
$header = $codec->decode($header_raw);
# Ensure roots are CID objects.
# If they were decoded as Tag 42 with our handler, they already are.
$roots = $header->{roots} if $header->{roots};
my @blocks_list;
while ( !defined $limit || systell($fh) < $data_start + $limit ) {
my $record_start = systell($fh);
my ( $block_len, $varint_len ) = Archive::CAR::Utils::decode_varint($fh);
last unless defined $block_len;
my $cid = Archive::CAR::Utils::decode_cid($fh);
last unless defined $cid;
my $cid_len = length( $cid->raw );
my $data_len = $block_len - $cid_len;
( run in 1.916 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )