in reply to While Loops

The way that I have traditionally approached this problem is thusly:   the ruling logic is the while-loop as written, and the exception to that loop is “100 records at a time.”

Therefore, I would first precede that loop by initializing a counter: my $records_so_far = 0;

Then, within that loop (at the bottom) I would add, e.g.:

if ($records_so_far ++ >= 100) { $records_so_far = 0; <<do something interesting here>> }
... and then, after the loop(!) ...
if ($records_so_far > 0) <<do it again i.e. call the same subroutine>>