for (1){ # if we get results, call "last" which ejects us from the block last if @results = blah('"for"'); # same again last if @results = blah('"for"'); @results = blah('"for'); last; # a final last so we don't loop forever if we don't get any results. }