diff options
author | mertz | 2003-09-22 10:11:39 +0000 |
---|---|---|
committer | mertz | 2003-09-22 10:11:39 +0000 |
commit | cc7a7619c1d992b56bedb906773909696126cdc9 (patch) | |
tree | 90541c8eab48ed7a825c6c2de022a283aa222c96 /Perl/t/Test/Harness/Iterator.pm | |
parent | 65f23eea6a663058c714d03b417b68b5b16b1fee (diff) | |
download | tkzinc-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.pm | 61 |
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}++]; +} |