Проведем анализ программы нового сценария анализатора.
1) Загрузка модулей. Кроме модулей lwp и http::Request::Common, загружается модуль HTML::Parser.
2) Настройка режима поиска. Создается объект lwp::UserAgent и новый объект http::Request также, как и в предыдущей версии этого сценария. Поисковым запрос это любое слово или словосочетание, к примеру это может быть запрос - ретранслятор сотовой связи .
3) Создание объекта HTML::Parser. Создается новый объект HTML::Parser версии 3 и устанавливается обработчик события start. Обработчиком является подпрограмма start () которая будет получать копию объекта синтаксического анализатора и имя тега.
4) Выдача запроса и синтаксический анализ. Для обработки запроса вызывается метод request () агента пользователя. Как и в сценарии print_links.pl, в качестве второго параметра метода request () используется ссылка на код, чтобы можно было приступить к обработке входящих данных сразу после их появления. В этом случае ссылка на код представляет собой анонимную подпрограмму, которая вызывает метод parse ( ) синтаксического анализатора.
После завершения обработки запроса вызывается метод eof () синтаксического анализатора для выполнения заключительных действий.
5) Предупреждение об аварийных ситуациях. Если метод is_success ( ) объекта ответа возвращает ложное значение, вызывается функция die с сообщением об ошибке. В ином случае не предпринимается никаких действий; за извлечение из документа и вывод необходимой информации отвечают подпрограммы обратного вызова синтаксического анализатора.