package Bio::Graphics::FeatureFile::Iterator; =head1 NAME Bio::Graphics::FeatureFile::Iterator -- Iterator across a Bio::Graphics::FeatureFile =head1 SYNOPSIS use Bio::Graphics::FeatureFile; my $data = Bio::Graphics::FeatureFile->new(-file => 'features.txt'); my $iterator = $data->get_seq_stream; while (my $feature = $iterator->next_seq) { print $feature->display_id,"\t",$feature->start,"\t",$feature->end,"\n"; } =head1 DESCRIPTION This is a Bio::SeqIO-like object that recognizes the next_seq() and next_feature() methods. The two methods are synonymous. There is also a rewind() method which will start iterating from the beginning again. =head1 SEE ALSO L, L, L, L =head1 AUTHOR Lincoln Stein Elstein@cshl.orgE. Copyright (c) 2001 Cold Spring Harbor Laboratory This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See DISCLAIMER.txt for disclaimers of warranty. =cut sub new { my $package = shift; return bless {features => shift, index => 0},$package; } sub next_seq { my $self = shift; return unless $self->{features}; return $self->{features}[$self->{index}++]; } *next_features = \&next_seq; sub rewind { my $self = shift; $self->{index} = 0; } 1;