in reply to improve ugly flow control

The obvious answer is, of course, a labelled block.

TRY: { foreach my $try ( @options ) { next unless exists $hash{ $try }; do_something( $try ); last TRY; } log_failure(); }

Makeshifts last the longest.

Replies are listed 'Best First'.
Re^2: improve ugly flow control (goto considered useful)
by Pragma (Scribe) on Sep 19, 2004 at 10:53 UTC
    This would have been obvious 30 years ago; perhaps less so today:
    foreach my $try (@options) { next unless exists $hash{$try}; do_something($try); goto SUCCESS; } log_failure(); SUCCESS: ...