package DBM::Deep::Iterator; use 5.008_004; use strict; use warnings FATAL => 'all'; =head1 NAME DBM::Deep::Iterator - iterator for FIRSTKEY() and NEXTKEY() =head1 PURPOSE This is an internal-use-only object for L. It is the iterator for FIRSTKEY() and NEXTKEY(). =head1 OVERVIEW This object =head1 METHODS =head2 new(\%params) The constructor takes a hashref of params. The hashref is assumed to have the following elements: =over 4 =item * engine (of type L =item * base_offset (the base_offset of the invoking DBM::Deep object) =back =cut sub new { my $class = shift; my ($args) = @_; my $self = bless { engine => $args->{engine}, base_offset => $args->{base_offset}, }, $class; Scalar::Util::weaken( $self->{engine} ); $self->reset; return $self; } =head2 reset() This method takes no arguments. It will reset the iterator so that it will start from the beginning again. This method returns nothing. =cut sub reset { die "reset must be implemented in a child class" } =head2 get_next_key( $obj ) =cut sub get_next_key { die "get_next_key must be implemented in a child class" } 1; __END__