{ my $j=0; my $resume=0; my $db=0; # Debugflag sub gather { goto $resume if $resume; # Dispatcher while (++$j<=5) { $resume="rein", goto raus unless ( $j%2 ); # Take rein: print "$j\n" if $db; } $resume=0; # Ausgang return; raus: print "-" if $db; return $j; } } while ( my $a=gather() ) { print "<<$a>>"; }