NAME

Array::Iter - Generate a coderef iterator for an array

VERSION

This document describes version 0.01 of Array::Iter (from Perl distribution Array-Iter), released on 2015-12-23.

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.

SEE ALSO

Array::Iterator, which also lists some other related modules.

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.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 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.