sub NEXTKEY { my $self = shift; #my $lastkey = shift; # Do you need this? If not, don't bother shifting it until($self->{FIRSTKEY} eq $KEYS[$self->{INDEX}]) { ++$self->{INDEX}; last if $self->{INDEX} >= $#KEYS; # Quit if we run out of @KEYS } return($KEYS[$self->{INDEX}]); }