What exactly are you trying to acheive? If you are polling multiple hosts, starting a new thread for each device could cause you some scalability problems. I had a similar situation a few years ago. Over about 50 hosts, and the overhead required for each new process killed the PC. Using Net::SNMP in non-blocking mode allows you to do the job. In my case, I'm now polling about 200 devices at once, and all polls are fiinshed in about 12 seconds. Is this what you're trying to do, or am I way off?