Please forgive necromancy.
In the case I just hit, I'm doing this:
CLIENT: while (!exitflag) {
eval {
# Various things that might throw exceptions
if (blah blah) {
next CLIENT;
}
};
if ($@) {
# Exception handling
}
}
So, I'm not just exiting the eval, I'm exiting considerably more. AND I'm doing it by an explicit label, not implicitly, so I really shouldn't be confused about what I'm doing. I'd really prefer not to get this warning in the case when I'm using a loop label to exit a particular loop.
(The big while loop is handling client connects as they come in, the eval inside it is to prevent unexpected errors from killing the whole server; they just abort the one connection. This is test code, the full version will fork of course, once it can handle the simple case.)