Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Mojo::Asset::File:
- sub transfer {
- my $self = shift;
- my $handle = $self->handle;
- my $cb = shift;
- my $size = shift || 131072;
- $handle->sysseek(0, SEEK_SET);
- while ($handle->sysread(my $buffer, $size)) { $cb->($buffer) }
- return $self;
- }
- # Mojo::Asset::Memory:
- sub transfer {
- my $self = shift;
- my $cb = shift;
- my $start = 0;
- my $end = $self->size;
- my $size = shift || $end;
- while ($start < $end) {
- $cb->(substr $self->{content}, $start, $size);
- $start += $size;
- }
- return $self;
- }
- # usage example:
- open $fh, '>', $path_to_file;
- $content->asset->transfer(
- sub { $fh->syswrite($_[0]) } => 1_000_000
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement