#!/usr/bin/perl -w package FlatDB::Iterator; require Iterator_Utils; use strict; use warnings; my $FIELDSEP = qr/\s+/; #sub Iterator (&) { return $_[0] } sub query { my $self = shift; my ($field, $value) = @_; my $fieldnum = $self->{FIELDNUM}{uc $field}; return unless(defined($fieldnum)); my $it = $self->{FH}; return Iterator { local $_; while(defined($_=Iterator_Utils::nextval($it))) { my @fields = split($self->{FIELDSEP}); my $fieldval = $fields[$fieldnum]; return $_ if($fieldval eq $value); } return; }; }