Concurrent SNMP? POE has a component for that. It might be more appropriate than pinging hosts.
In general, you will have issues if your polling period is shorter than the time SNMP::Multi takes to process the list. Your polling loop could trigger a new round of snmpget while the previous one is still in play. If you run into this problem, it will snowball until the program crashes: The second snmpget round will be slower than the first (because it's running concurrently with the first). The third will run slower than the second. Meanwhile, new rounds are accumulating.