package Tie::File::GFF; use strict; use warnings; use base "Tie::File"; sub get_next_rec { ## Any way of reading records of a file, for example: my $self = shift; my $fh = $self->{fh}; return undef if (eof $fh); my ($last_seen,$last_pos,$rec); while (<$fh>){ my @f = split /\t/; $last_seen = $f[0] if (! defined $last_seen); if ($f[0] eq $last_seen){ $rec.=$_; $last_pos = int (tell $fh); return $rec if (eof $fh); next; } else { seek $fh, $last_pos, 0; return $rec; } } } 1;