Data-Downloader

 view release on metacpan or  search on metacpan

lib/Data/Downloader/File.pm  view on Meta::CPAN

sub _already_downloaded {
    my $self = shift;
    TRACE "checking for already downloadedness";
    return ( $self->md5
          && $self->filename
          && -e $self->storage_path
          ) ? 1 : 0;
}

# Get the element(s) which produce the min value of a subroutine.
sub _minmap(&@) {
    my $sub = shift;
    return unless @_;
    my @min = (shift);
    my $min = $sub->($min[0]);
    for (@_) {
        my $val = $sub->($_);
        if    ( $val < $min  ) { ( $min, @min ) = ( $val, $_ ); }
        elsif ( $val == $min ) { push @min, $_;                 }
    }
    return @min;
}
# Ditto for max
sub _maxmap(&@) {
    my $sub = shift;
    return _minmap(sub { -$sub->(shift) }, @_);
}

# Choose the disk (if the repository has multiple disks).
sub _choose_disk {
    my $self = shift;

    # Disk already set?
    if ($self->disk) {



( run in 0.931 second using v1.01-cache-2.11-cpan-49f99fa48dc )