In the true sprirt of perverseness, why not make loops into functions that return the number of iterations taken. Then you can have
loop { .... } or die "loop not taken\n"; ;-) -- A walk of a thousand miles begins with a single step... then continues for another 1,999,999 or so.