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; #### 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;