aboutsummaryrefslogtreecommitdiff
path: root/Perl/t/Test/Harness/Iterator.pm
diff options
context:
space:
mode:
authormertz2003-09-22 10:11:39 +0000
committermertz2003-09-22 10:11:39 +0000
commitcc7a7619c1d992b56bedb906773909696126cdc9 (patch)
tree90541c8eab48ed7a825c6c2de022a283aa222c96 /Perl/t/Test/Harness/Iterator.pm
parent65f23eea6a663058c714d03b417b68b5b16b1fee (diff)
downloadtkzinc-cc7a7619c1d992b56bedb906773909696126cdc9.zip
tkzinc-cc7a7619c1d992b56bedb906773909696126cdc9.tar.gz
tkzinc-cc7a7619c1d992b56bedb906773909696126cdc9.tar.bz2
tkzinc-cc7a7619c1d992b56bedb906773909696126cdc9.tar.xz
these files are used for building complexe test files
Diffstat (limited to 'Perl/t/Test/Harness/Iterator.pm')
-rw-r--r--Perl/t/Test/Harness/Iterator.pm61
1 files changed, 61 insertions, 0 deletions
diff --git a/Perl/t/Test/Harness/Iterator.pm b/Perl/t/Test/Harness/Iterator.pm
new file mode 100644
index 0000000..5e22793
--- /dev/null
+++ b/Perl/t/Test/Harness/Iterator.pm
@@ -0,0 +1,61 @@
+package Test::Harness::Iterator;
+
+use strict;
+use vars qw($VERSION);
+$VERSION = 0.01;
+
+
+=head1 NAME
+
+Test::Harness::Iterator - Internal Test::Harness Iterator
+
+=head1 SYNOPSIS
+
+ use Test::Harness::Iterator;
+ use Test::Harness::Iterator;
+ my $it = Test::Harness::Iterator->new(\*TEST);
+ my $it = Test::Harness::Iterator->new(\@array);
+
+ my $line = $it->next;
+
+
+=head1 DESCRIPTION
+
+B<FOR INTERNAL USE ONLY!>
+
+This is a simple iterator wrapper for arrays and filehandles.
+
+=cut
+
+sub new {
+ my($proto, $thing) = @_;
+
+ my $self = {};
+ if( ref $thing eq 'GLOB' ) {
+ bless $self, 'Test::Harness::Iterator::FH';
+ $self->{fh} = $thing;
+ }
+ elsif( ref $thing eq 'ARRAY' ) {
+ bless $self, 'Test::Harness::Iterator::ARRAY';
+ $self->{idx} = 0;
+ $self->{array} = $thing;
+ }
+ else {
+ warn "Can't iterate with a ", ref $thing;
+ }
+
+ return $self;
+}
+
+package Test::Harness::Iterator::FH;
+sub next {
+ my $fh = $_[0]->{fh};
+ return scalar <$fh>;
+}
+
+
+package Test::Harness::Iterator::ARRAY;
+sub next {
+ my $self = shift;
+ return $self->{array}->[$self->{idx}++];
+}