NAME

IntRange::Iter - Generate a coderef iterator from an int range specification (e.g. '1,5-10,20')

VERSION

This document describes version 0.006 of IntRange::Iter (from Perl distribution IntRange-Iter), released on 2021-08-01.

SYNOPSIS

  use IntRange::Iter qw(intrange_iter);

  my $iter = intrange_iter('1,5-10,15-17'); # or: intrange_iter({allow_dotdot=>1}, '1,5-10,15..17');

  while (my $val = $iter->()) { ... } # 1, 5,6,7,8,9,10, 15,16,17 undef, ...

DESCRIPTION

This module provides a simple (coderef) iterator which you can call repeatedly to get numbers specified in an integer range specification (string). When the numbers are exhausted, the coderef will return undef. No class/object involved.

FUNCTIONS

intrange_iter

Usage:

 $iter = intrange_iter([ \%opts ], $spec); # coderef

Options:

  • allow_dash

    Bool. Default true. At least one of allow_dash or "allow_dotdot" must be true.

  • allow_dotdot

    Bool. Default false. At least one of "allow_dash" or allow_dotdot must be true.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/IntRange-Iter.

SOURCE

Source repository is at https://github.com/perlancar/perl-IntRange-Iter.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=IntRange-Iter

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

Other iterators: Range::Iter, NumSeq::Iter.

CLI for this module: seq-intrange (from App::seq::intrange)

Regexp::Pattern::IntRange

Sah::Schemas::IntRange

Modules that might also interest you: Set::IntSpan and Array::IntSpan.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.