sub loop_control { if ($x > $stop) { return "last"; } elsif ($y ne $text) { foobar(); } else { return "next"; } } # ... my $return_status = loop_control(); last if $return_status eq "last"; next if $return_status eq "next"; # ...