[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/Test/Harness/ -> Iterator.pm (source)

   1  package Test::Harness::Iterator;
   2  
   3  use strict;
   4  use vars qw($VERSION);
   5  $VERSION = 0.02;
   6  
   7  =head1 NAME
   8  
   9  Test::Harness::Iterator - Internal Test::Harness Iterator
  10  
  11  =head1 SYNOPSIS
  12  
  13    use Test::Harness::Iterator;
  14    my $it = Test::Harness::Iterator->new(\*TEST);
  15    my $it = Test::Harness::Iterator->new(\@array);
  16  
  17    my $line = $it->next;
  18  
  19  =head1 DESCRIPTION
  20  
  21  B<FOR INTERNAL USE ONLY!>
  22  
  23  This is a simple iterator wrapper for arrays and filehandles.
  24  
  25  =head2 new()
  26  
  27  Create an iterator.
  28  
  29  =head2 next()
  30  
  31  Iterate through it, of course.
  32  
  33  =cut
  34  
  35  sub new {
  36      my($proto, $thing) = @_;
  37  
  38      my $self = {};
  39      if( ref $thing eq 'GLOB' ) {
  40          bless $self, 'Test::Harness::Iterator::FH';
  41          $self->{fh} = $thing;
  42      }
  43      elsif( ref $thing eq 'ARRAY' ) {
  44          bless $self, 'Test::Harness::Iterator::ARRAY';
  45          $self->{idx}   = 0;
  46          $self->{array} = $thing;
  47      }
  48      else {
  49          warn "Can't iterate with a ", ref $thing;
  50      }
  51  
  52      return $self;
  53  }
  54  
  55  package Test::Harness::Iterator::FH;
  56  sub next {
  57      my $fh = $_[0]->{fh};
  58  
  59      # readline() doesn't work so good on 5.5.4.
  60      return scalar <$fh>;
  61  }
  62  
  63  
  64  package Test::Harness::Iterator::ARRAY;
  65  sub next {
  66      my $self = shift;
  67      return $self->{array}->[$self->{idx}++];
  68  }
  69  
  70  "Steve Peters, Master Of True Value Finding, was here.";


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1