Получение отформатированного кода HTML из сценария get_url.pl.
Теперь сценарий get_ur.l.pl будет переписан в третий раз для получения возможности применить средства форматирования, предоставляемые модулей HTML::FormatText. Как только новый сценарий, незатейливо названный get_url.pl, обнаруживает документ HTML, например, содержащего информацию о методах обеспечения контракта по 44-ФЗ , он автоматически преобразовывает его в отформатированный текст. Важной особенностью этого сценария является то, что в нем механизм обратного вызова запроса объекта LWP::UserAgent объединен с методом parse () объекта HTML::TreeBuilder для синтаксического анализа документа HTML одновременно с его загрузкой. После того как загрузка и синтаксический анализ начинают выполняться параллельно работа сценария значительно ускоряется.
Проведем анализ программы.
1) Загрузка модулей. Загружаются модули LWP, PromptUtil, HTML::FormatText и HTML::TreeBuilder.
2). Подготовка запроса. Создается объект HTTP::Request, как и в предыдущих версиях этого сценария. Опять-таки, при необходимости пользователь получает запрос ввести аутентификационную информацию, поэтому сценарий оформлен как подкласс класса LWP::UserAgent, чтобы можно было перекрыть метод get_basic_credentiais ().
3) Отправка запроса. Запрос отправляется с использованием метода requests агента пользователя. Однако мы не позволяем модулю lwp оставить полученное информационное наполнение в объекте http::Response для последующей выборки, а передаем методу request () второй параметр, содержащий ссылку на подпрограмму prpeess_documeht ().