package Brackup::Chunker::Default; use strict; sub chunks { my ($class, $file) = @_; my @chunk_list; my $root = $file->root; my $chunk_size = $root->chunk_size; my $size = $file->size; my $offset = 0; while ($offset < $size) { my $len = _min($chunk_size, $size - $offset); my $chunk = Brackup::PositionedChunk->new( file => $file, offset => $offset, length => $len, ); push @chunk_list, $chunk; $offset += $len; } return @chunk_list; } sub _min { return (sort { $a <=> $b } @_)[0]; } 1;