package TAP::Parser::Iterator::Array; use strict; use TAP::Parser::Iterator (); use vars qw($VERSION @ISA); @ISA = 'TAP::Parser::Iterator'; =head1 NAME TAP::Parser::Iterator::Array - Internal TAP::Parser Iterator =head1 VERSION Version 3.05 =cut $VERSION = '3.05'; =head1 SYNOPSIS use TAP::Parser::Iterator::Array; my $it = TAP::Parser::Iterator->new(\@array); my $line = $it->next; Originally ripped off from L. =head1 DESCRIPTION B This is a simple iterator wrapper for arrays. =head2 Class Methods =head3 C Create an iterator. =head2 Instance Methods =head3 C Iterate through it, of course. =head3 C Iterate raw input without applying any fixes for quirky input syntax. =head3 C Get the wait status for this iterator. For an array iterator this will always be zero. =head3 C Get the exit status for this iterator. For an array iterator this will always be zero. =cut sub new { my ( $class, $thing ) = @_; chomp @$thing; bless { idx => 0, array => $thing, exit => undef, }, $class; } sub wait { shift->exit } sub exit { my $self = shift; return 0 if $self->{idx} >= @{ $self->{array} }; return; } sub next_raw { my $self = shift; return $self->{array}->[ $self->{idx}++ ]; } 1;