Iterator-Util
view release on metacpan or search on metacpan
=for gpg
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
=head1 NAME
Iterator::Util - Essential utilities for the Iterator class.
=head1 VERSION
This documentation describes version 0.02 of Iterator::Util, August 23, 2005.
=cut
use strict;
use warnings;
package Iterator::Util;
our $VERSION = '0.02';
use base 'Exporter';
use vars qw/@EXPORT @EXPORT_OK %EXPORT_TAGS/;
@EXPORT = qw(imap igrep irange ilist iarray ihead iappend
ipairwise iskip iskip_until imesh izip iuniq);
@EXPORT_OK = (@EXPORT);
use Iterator;
# Function name: imap
# Synopsis: $iter = imap {code} $another_iterator;
# Description: Transforms an iterator.
# Created: 07/27/2005 by EJR
# Parameters: code - Transformation code
# $another_iterator - any other iterator.
# Returns: Transformed iterator.
# Exceptions: Iterator::X::Parameter_Error
# Iterator::X::Am_Now_Exhausted
sub imap (&$)
{
my ($transformation, $iter) = @_;
Iterator::X::Parameter_Error->throw(q{Argument to imap must be an Iterator object})
unless UNIVERSAL::isa($iter, 'Iterator');
return Iterator->new( sub
{
Iterator::is_done if ($iter->is_exhausted);
local $_ = $iter->value ();
return $transformation-> ();
});
}
# Function name: igrep
# Synopsis: $iter = igrep {code} $another_iterator;
# Description: Filters an iterator.
# Created: 07/27/2005 by EJR
# Parameters: code - Filter condition.
# $another_iterator - any other iterator.
This exception has one method, C<eval_error>, which returns the
original C<$@> that was trapped by the Iterator object. This may be a
string or an object, depending on how C<die> was invoked.
As a string, this exception evaluates to the stringified C<$@>.
=item * I/O Errors
Class: C<Iterator::X::IO_Error>
This exception is thrown when any sort of I/O error occurs; this
only happens with the filesystem iterators.
This exception has one method, C<os_error>, which returns the original
C<$!> that was trapped by the Iterator object.
As a string, this exception provides some human-readable information
along with C<$!>.
=item * Internal Errors
Class: C<Iterator::X::Internal_Error>
Something happened that I thought couldn't possibly happen. I would
appreciate it if you could send me an email message detailing the
circumstances of the error.
=back
=head1 REQUIREMENTS
Requires the following additional modules:
L<Iterator>
=head1 SEE ALSO
I<Higher Order Perl>, Mark Jason Dominus, Morgan Kauffman 2005.
L<http://perl.plover.com/hop/>
=head1 THANKS
Much thanks to Will Coleda and Paul Lalli (and the RPI lily crowd in
general) for suggestions for the pre-release version.
=head1 AUTHOR / COPYRIGHT
Eric J. Roode, roode@cpan.org
Copyright (c) 2005 by Eric J. Roode. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
To avoid my spam filter, please include "Perl", "module", or this
module's name in the message's subject line, and/or GPG-sign your
message.
=cut
=begin gpg
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Cygwin)
iD8DBQFDC5UFY96i4h5M0egRApNiAJ9WwoZql+2DE+RsSA6koGLZPcbQZACfY248
VoKah+WAFOvk46vOcn+hL9Y=
=aOws
-----END PGP SIGNATURE-----
=end gpg
( run in 0.519 second using v1.01-cache-2.11-cpan-e1769b4cff6 )