while ( ! $no_error_opening_file and !( eof and $need_not_process_beyond_eof ) and ! $found_all_elements_I_was_looking_for ) { #### until( $no_error_opening_file or ( eof and $need_not_process_beyond_eof ) or $found_all_elements_i_was_looking_for ) { #### open FH ... or die ...; while( ) { my $foundEverything = processLine( $_ ); last if $foundEverything; } #### open FH ... or die ..; until( eof FH ) { my $line1 = ; my $line2 = ; my $foundEverything = processRecord( $line1, $line2 ); last if $foundEverything; }