Вместо того, чтобы опросить, посмотрите, не можете ли вы получить дескрипторы файлов и сделать вызов select.
Тогда вы получите контроль, как только что-нибудь произойдет, вообще не занимая ЦП.
Где-то в веб-запросе будет несколько сокетов, и к сокетам будут прикреплены файловые дескрипторы, которые вы можете использовать в select.
В любом случае ваша программа может быть прервана в любой момент на любое количество времени; если это реальная проблема, вам нужна операционная система реального времени, но, поскольку вы имеете дело с веб-запросами, я сомневаюсь, что вам нужен такой уровень реагирования.
На самом деле вам нужен интерфейс высокого уровня, который выполняет вызов select для вас. Как предлагается в комментариях: http://search.cpan.org/dist/HTTP-Async/ похоже, что он будет делать именно то, что вам нужно.