Minion

 view release on metacpan or  search on metacpan

lib/Minion/Util.pm  view on Meta::CPAN

  for my $v (@$values) { return $v if $v >= $after }
  return undef;
}

sub _parse_field {
  my ($field, $name, $min, $max, $names) = @_;

  my $is_star = $field eq '*' ? 1 : 0;
  my %set;
  for my $part (split /,/, $field) {
    my ($range, $step) = split m{/}, $part, 2;
    $step //= 1;
    croak qq{Invalid step "$step" in $name field} unless $step =~ /^[1-9]\d*$/;

    my ($a, $b);
    if    ($range eq '*')             { ($a, $b) = ($min, $max) }
    elsif ($range =~ /^(\w+)-(\w+)$/) { ($a, $b) = (_resolve($1, $name, $names), _resolve($2, $name, $names)) }
    elsif ($range =~ /^(\w+)$/)       { $a = $b = _resolve($1, $name, $names) }
    else                              { croak qq{Invalid $name field "$part"} }
    croak qq{Value out of range in $name field "$part" ($min-$max)} if $a < $min || $b > $max || $a > $b;



( run in 1.492 second using v1.01-cache-2.11-cpan-71847e10f99 )