Строки 6, 7. Интерпретация стандартного ввода. Теперь вызывается метод parse () синтаксического анализатора и ему передаются строки, считанные с помощью оператора <>. После достижения конца файла вызывается метод eof () синтаксического анализатора в качестве указания на завершение работы. Методы parse() и eof () действуют аналогично подобным методам объекта html::TreeBuilder, которые были рассмотрены ранее.
Строки 8-15. Процедура обратного вызова print_link(). В подпрограмме print_link () сосредоточена основная часть логики программы. Эта подпрограмма вызывается во время синтаксического анализа каждый раз, когда синтаксический анализатор встречает начальный тег. Как было определено при установке обработчика событий, синтаксический анализатор передает подпрограмме имя тега и ссылку на хеш, содержащий атрибуты тега. Имя тега и имена атрибутов автоматически преобразуются в нижний регистр, что упрощает работу с ними в случае появления в этих именах непредсказуемых сочетаний символов верхнего и нижнего регистров, как часто встречается в коде HTML.
Нас интересуют только гипертекстовые ссылки, тег <а>, и встроенные изображения, тег. Если тег имеет имя “а”, выводится строка с надписью “link:”, за которой следует информационное наполнение атрибута href. Если же тег имеет имя “img”, выводится надпись «img:», за которой следует содержимое атрибута src. При появлении других тегов никакие действия не выполняются.
API-интерфейс модуля HTML::Parser.
Модуль HTML:: Parser имеет два API-интерфейса. В созданном ранее API-интерфейсе, который применялся в версии 2 данного модуля, установка обработчика различных событий выполнялась путем создания подкласса этого модуля и перекрытия методов start (), end () и text ().