NAME
Array::Iter - Generate a coderef iterator for an array
VERSION
This document describes version 0.021 of Array::Iter (from Perl distribution Array-Iter), released on 2021-07-25.
SYNOPSIS
use Array::Iter qw(array_iter list_iter);
my $iter = array_iter([1,2,3,4,5]);
while (my $val = $iter->()) { ... }
$iter = list_iter(1,2,3,4,5);
while (my $val = $iter->()) { ... }
DESCRIPTION
This module provides a simple iterator which is a coderef that you can call repeatedly to get elements of a list/array. When the elements are exhausted, the coderef will return undef. No class/object involved.
The principle is very simple and you can do it yourself with:
my $iter = do {
my $i = 0;
sub {
if ($i < @$ary) {
return $ary->[$i++];
} else {
return undef;
}
};
}
Caveat: if list/array contains an undef
element, it cannot be distinguished with an exhausted iterator.
FUNCTIONS
array_iter($aryref) => coderef
list_iter(@elems) => coderef
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Array-Iter.
SOURCE
Source repository is at https://github.com/perlancar/perl-Array-Iter.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Array-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
Array::Iterator, which creates (several kinds of) iterator objects. The module also lists some other related modules.
Other *::Iter
modules to create simple (coderef) iterator: Range::Iter, IntRange::Iter, NumSeq::Iter.
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021, 2015 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.