sub load_next{ my ($self, %arguments) = @_; my @next = @{$self->storage_next_list}; my $new_self = shift @next or return; %{$self} = %{$new_self}; $self->storage_next_list(list=>\@next); return $self; } sub storage_next_list{ my ($self, %arguments) = @_; $self->{storage}{next} = $arguments{list} if exists $arguments{list}; return $self->{storage}{next}; }