in reply to Re^7: last in a do while loop (for (;;))
in thread last in a do while loop

redo is usually good for that.
while (<$fh>) { chomp; if (... && !eof($fh)) { $_ .= <$fh>; redo; } ... }