Spreadsheet-Compare
view release on metacpan or search on metacpan
lib/Spreadsheet/Compare/Reader/CSV.pm view on Meta::CPAN
return $self;
}
sub _chunk_records ($self) {
$debug and DEBUG "chunking side $self->{index}";
my $skipper = $self->skipper;
while ( my $rec = $self->_read_record ) {
next if $skipper and $skipper->($rec);
my $cname = $self->chunker->($rec);
my $cdata = $self->_chunk_data->{$cname} //= [];
push @$cdata, delete( $rec->{__INFO__} );
}
$debug and DEBUG "found chunks:", sub { Dump( [ sort keys $self->_chunk_data->%* ] ) };
my $fh = $self->filehandle;
seek( $fh, 0, 0 );
return $self;
}
sub fetch ( $self, $size ) {
my $result = $self->result;
my $count = 0;
if ( $self->chunker ) {
my $cdata = $self->_chunk_data;
my $cname = ( sort keys %$cdata )[0];
my $chunk = delete $cdata->{$cname};
$self->{__ro__exhausted} = 1 unless keys %$cdata;
$debug and DEBUG "Fetching data for chunk $cname";
for my $rec_info (@$chunk) {
if ( my $rec = $self->_read_record($rec_info) ) {
push @$result, $rec;
$count++;
}
}
$debug and DEBUG "fetched $count records from chunk $cname";
}
else {
lib/Spreadsheet/Compare/Reader/FIX.pm view on Meta::CPAN
return $self;
}
sub _chunk_records ($self) {
$debug and DEBUG "chunking side $self->{index}";
my $skipper = $self->skipper;
while ( my $rec = $self->_read_record ) {
next if $skipper and $skipper->($rec);
my $cname = $self->chunker->($rec);
my $cdata = $self->_chunk_data->{$cname} //= [];
push @$cdata, delete( $rec->{__INFO__} );
}
$debug and DEBUG "found chunks:", sub { Dump( [ sort keys $self->_chunk_data->%* ] ) };
my $fh = $self->filehandle;
seek( $fh, 0, 0 );
return $self;
}
sub fetch ( $self, $size ) {
my $result = $self->result;
my $fn = $self->filename;
my $count = 0;
if ( $self->chunker ) {
my $cdata = $self->_chunk_data;
my $cname = ( sort keys %$cdata )[0];
my $chunk = delete $cdata->{$cname};
$self->{__ro__exhausted} = 1 unless keys %$cdata;
$debug and DEBUG "Fetching data for chunk $cname";
for my $rec_info (@$chunk) {
if ( my $rec = $self->_read_record($rec_info) ) {
push @$result, $rec;
$count++;
}
}
}
else {
$debug and DEBUG "fetching max $size records";
( run in 0.711 second using v1.01-cache-2.11-cpan-454fe037f31 )