NAME
List::Cycle - Objects for cycling through a list of values
VERSION
Version 1.04
SYNOPSIS
List::Cycle gives you an iterator object for cycling through a series of values. The canonical use is for cycling through a list of colors for alternating bands of color on a report.
use
List::Cycle;
my
$colors
= List::Cycle->new( {
values
=> [
'#000000'
,
'#FAFAFA'
,
'#BADDAD'
]} );
$colors
->
next
;
# #000000
$colors
->
next
;
# #FAFAFA
$colors
->
next
;
# #BADDAD
$colors
->
next
;
# #000000
$colors
->
next
;
# #FAFAFA
... etc ...
You'd call it at the top of a loop:
while
( ... ) {
my
$color
=
$colors
->
next
;
qq{<tr bgcolor="$color">;
...
}
Note that a List::Cycle object is not a standard Perl blessed hash. It's an inside-out object, as suggested in Perl Best Practices. In the seven years since PBP has come out, inside-out objects have been almost universally ignored, but I keep List::Cycle as an example. If you don't care about the internals of the object, then List::Cycle is a fine module for you to use.
FUNCTIONS
new( {values => \@values} )
Creates a new cycle object, using @values.
The values
keyword can be vals
, if you like.
$cycle->set_values(\@values)
Sets the cycle values and resets the internal pointer.
$cycle->reset
Sets the internal pointer back to the beginning of the cycle.
my
$color
= List::Cycle->new( {
values
=> [
qw(red white blue)
]} );
$color
->
next
;
# red
$color
->
next
;
# white
$color
->
reset
;
$color
->
next
;
# red, not blue
$cycle->dump
Returns a handy string representation of internals.
$cycle->next
Gives the next value in the sequence.
AUTHOR
Andy Lester, <andy at petdance.com>
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc List::Cycle
You can also look for information at:
Project home page and source code repository
Issue tracker
BUGS
Please report any bugs or feature requests at https://github.com/petdance/list-cycle/issues.
ACKNOWLEDGEMENTS
List::Cycle is a playground that uses some of the ideas in Damian Conway's marvelous Perl Best Practices. http://www.oreilly.com/catalog/perlbp/ One of the chapters mentions a mythical List::Cycle module, so I made it real.
Thanks also to Ricardo SIGNES and Todd Rinaldo for patches.
COPYRIGHT & LICENSE
Copyright 2005-2012 Andy Lester.
This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License v2.0.