in reply to Boolean counter?

I cannot resist. You can also use a closure, every time you call it you get 0 or 1 alternatingly. You can create as many independent toggles as you want.

use strict; use warnings; sub create_toggle { my $flag = 0; return sub { $flag = 1-$flag } # your favorite method here } my $toggle = create_toggle; print $toggle->()."\n" for 1..10;

UPDATE: ...or like this

use strict; use warnings; { package Toggler; sub new { my $flag = 0; return sub { $flag = 1-$flag } } } my $toggle = new Toggler; print $toggle->()."\n" for 1..10;