http://www.perlmonks.org?node_id=894360


in reply to Re: Circular buffer
in thread Circular buffer

I don't like leaving the $pointer variable grow indefinitely.
This code is equivalent, but keeps $pointer in [0,@buffer). In fact, just gets the remainder after each $pointer change
my @buffer = (0) x 5; my $pointer = 0; for (0..30) { print "old value: ", $buffer[$pointer], "\n"; print "new value: $_\n"; $buffer[$pointer] = $_; $pointer = (++$pointer) % @buffer; }