Acme-JMOLLY-Utils
view release on metacpan or search on metacpan
lib/Tie/Cycle.pm view on Meta::CPAN
$self->[CURSOR_COL] = 0;
$self->[COUNT_COL] = scalar @shallow_copy;
$self->[ITEM_COL] = \@shallow_copy;
}
sub reset { $_[0]->[CURSOR_COL] = 0 }
sub previous {
my( $self ) = @_;
my $index = $self->_cursor - 1;
$self->[CURSOR_COL] %= $self->_count;
return $self->_item( $index );
}
sub next {
my( $self ) = @_;
my $index = $self->_cursor + 1;
$self->[CURSOR_COL] %= $self->_count;
return $self->_item( $index );
}
sub _cursor { $_[0]->[CURSOR_COL] }
sub _count { $_[0]->[COUNT_COL] }
sub _item {
my( $self, $index ) = @_;
$index = defined $index ? $index : $self->_cursor;
$self->[ITEM_COL][ $index ]
}
"Tie::Cycle";
__END__
=encoding utf8
=head1 NAME
( run in 0.222 second using v1.01-cache-2.11-cpan-a5abf4f5562 )