sub test { OUTER: # how is $die getting set? while ($die != 1) { # if magic != 1, we're buzzing as fast as # we can in this while loop. if ($magic == 1) { while (1) { if ( $magic == 2) { for (;;) { # buzzing in loop again... if ( $magic == 1) { last}; } } print "happy\n"; last OUTER if $die == 1; if ( $magic == 0) { last}; } } } }