> Can anyone tell me why my WHY DOES THIS NEVER RUN section below does run?
It runs because your session runs out of hosts to ping (presumably after getting responses or timeouts from the three in @addresses) and terminates. It's normal for POE::Kernel::run to return after all sessions have terminated (by virtue of having no pending events). If you want it to run forever, consider pushing each address back on the end of @addresses whenever you shift one off the front. You'll probably want to provide for a minimum delay before pinging a host again.