Строки 101-111. Метод write_local () отвечает за запись фрагмента данных в локальный файл. С помощь него можно, например, скачать Майнкрафт на локальный диск с последующем выполнением установки. Файл открывается только в случае необходимости. Выполняется проверка объекта HTTPFetch на наличие переменной экземпляра localfh. Если она не определена, то вызывается функция mkpath () для создания требуемых родительских каталогом, если в этом есть необходимость, и метод IO::File->new() для открытия файла, указанного параметром localpath. Если файл не может быть открыт, выполнение метода завершается с сообщением об ошибке. В ином случае вызывается функция syswrits () для записи данных в файл и дескриптор файла запоминается как атрибут экземпляра localfh для последующего использования.
Строки 112-118. Метод error (). В этом методе применяется функция carp () для записи указанного сообщения об ошибке в стандартный дескриптор вывода сообщений об ошибках. Для удобства перед этим сообщением об ошибке выводится URL, за который отвечает данный объект HTTPFetch. Для проверки результатов применения параллельного подключения специалисты сравнивают эту программу с версией сценария web_fetch . pl, в котором выборка информации выполняется в последовательном цикле, и обнаружили, что выборка начальных страниц трех популярных Web-серверов (www.yahoo.com, www.google.com и www.infoseek.com) ускорилась примерно в три раза.
Неблокирующий вызов метода accept()
Неблокирующий вызов метода accept () чаще всего используется для задания тайм-аута. Кроме того, он применяется в сервере, который должен принимать соединения из нескольких портов. В этом случае можно создать в сервере несколько приемных сокетов и выполнять на них функцию select ( ). Функция select () укажет, что сокет готов для чтения, если метод accept () может быть вызван без блокировки.