Строки 1-6. Загрузка модулей. Включена строгая проверка синтаксиса и загружен модуль lwp. Загружается также модуль PromptUtil, который предоставляет функцию get_passwd (), позволяющую получить от пользователя пароль без отображения его на экране. Устанавливается значение в массиве @isa для указания того, что текущий пакет является подклассом класса LWP::UserAgent. Для более подробной информации о модуле PromptUtil - смотрите цены на сайте сервиса.
Строки 7-12. Выдача запроса и вывод информационного наполнения на стандартное устройство вывода. Этот основной раздел данного сценария идентичен первоначальному сценарию get_url.pl. Однако, вместо вызова для создания нового объекта агента пользователя метода lwp: :UserAgent->new(), вызывается метод % package ->new(). Интерпретатор Perl автоматически заменяет лексему package именем текущего пакета (в данном случае “main”), создавая требуемый подкласс класса LWP: :UserAgent.
Строки 13-20. Перекрытие метода get_basic_credentials (). В этой части кода метод get_basic_credentials () перекрывается специализированной подпрограммой. Этот подкласс ведет себя точно так же, как обычный класс LWP::UserAgent, до тех пор, пока не возникает необходимость в получении аутентификационной информации, после чего вызывается эта подпрограмма.
Подпрограмма вызывается с тремя параметрами, в число которых входят объект агента пользователя, область действия аутентификационной информации и затребованный URL. Выдается запрос ввести имя пользователя, а затем вызывается функция get_passwd( ) для выдачи пользователю запроса и получения пароля.