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.731 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )