|
Array::Slice - context-dependent array iterator |
Array::Slice - context-dependent array iterator
use Array::Slice qw(slice);
Iterate over an array assigning several items per cycle. Three:
while ( my ( $x, $y, $z) = slice @arr) { ... }
or two:
while ( my ( undef, $second) = slice @arr) { ... }
or even forty-two:
while ( @a = slice @arr, 42) { ... }
I've always wanted the power of foreach(@arr) to be applied to arrays
working with more than one item at a time. Perl6 does it, Perl5 with source
filtering can do it, close, but no cigar. This module is an small step towards
the idea, an attempt to produce a way of slicing a single array with least
obtrusive syntax I can think of.
The module works by attaching an integer counter to each scalar using perl magic API, advancing the counter on each slice.
$howmany items perl call. If called without $howmany,
deduces the number depending on the calling context.
$whereto or 0. $whereto can be negavtive, as in
native array indexing.
Array items are copied, not aliased as in for/foreach.
Doesn't work with lists. This is one big TODO.
the Array::Each::Override manpage, the Array::Each manpage, the Want manpage, the List::MoreUtils manpage, Synopsis 04(The 'for' statement).
Aaron Crane for implementation of the Array::Each::Override manpage, which code was used as base for this module.
Dmitry Karasik, <dmitry@karasik.eu.org>.
|
Array::Slice - context-dependent array iterator |