my $flipflop = 0; sub foo { use Want qw(want); print 'not ' if !want 'BOOL'; print "bool\n"; return $flipflop=!$flipflop; # alternate true and false } for (1..3) { while (foo() ) { # print "here 1\n"; } while ($answer = foo() ) { # print "here 2\n"; } }