Строки 28-37. Обработчик start (). Подпрограмма start ( ) вызывается синтаксическим анализатором для обработки начальных тегов. В соответствии со списком параметров, передаваемым методу handler(), эта подпрограмма получает копию объекта синтаксического анализатора, которым может быть страница описывающая партнерские программы , имя текущего тега и ссылку на хеш, содержащий атрибуты тега.
Выполняется проверка того, происходит ли обработка тега. Если нет, осуществляется возврат без каких-либо дальнейших действий. Затем проверяется, определен ли атрибут этого тега, и, если это так, атрибут копируется в локальную переменную.
Атрибут src содержит URL встроенного изображения и может представлять собой полный URL с доменом или относительный URL наподобие images/messengerpromo.gif. Для выборки данных источника изображения необходимо преобразовать относительные URL в абсолютные, чтобы их можно было запросить через агента пользователя lwp. Необходимо также сформировать имя файла на локальном компьютере, в котором будет записана копия изображения.
Модуль URI позволяет значительно упростить задачу преобразования относительных URL в абсолютные. Метод URI->new_abs () принимает в качестве параметра относительный и базовый URL, а затем формирует полный URL. Для получения базового URL документа, содержащего изображение, выполняется его выборка по ключу “base” из хеша синтаксического анализатора, куда он был записан ранее. Эта информация передается методу new_abs () наряду с URL изображения (строка 33) для получения полного URL. Если URL уже был полным, вызов метода new_abs () его не искажает, поскольку метод обнаруживает это и возвращает URL в неизменном виде.