So for the first time in thousands and thousands of lines of code I use a C-style loop because that's the way to go when fetching mail with Mail::POP3Client, and guess what? I'm screwed with an off-by-one error.
It's probably because I'm sloppy, and I'm unused to it. But I even remember being careful with the condition when I wrote it. Um, at least the first time.
The silver lining: yes, I caught it with a test that changed my default "fetch at most n mails" property.