Код сценария в чем то аналогичен выше приведенному, включая новшества, навеянные бизнес идеями 2014 в сфере прикладного программирования. Он содержит следующие этапы.
1) Загрузка модулей. Включена строгая проверка синтаксиса и загружены модули LWP и URL::Escape. Модуль URI::Escape автоматически импортирует функции uri_escape () и uri_unescape ().
2) Определение констант. Определена одна константа для URL сценария поиска на удаленном сервере, а другая — для страницы, на которой находится заполняемая форма. Последняя константа нужна для правильного заполнения поля Referer: запроса; вскоре будет описано, с чем связана такая необходимость.
3) Создание объекта агента пользователя. Этот код аналогичен коду, приведенному в предыдущих примерах, за исключением того, что используется другой идентификатор агента пользователя.
4) Формирование строки запроса. Параметры вызова сценария преобразуются в строку, которая используется в качестве значения поля query заполняемой формы. Нас интересует поиск в предметном указателе архива RFC, поэтому в качестве значения поля archive применяется “rfcindex”, Значения этих полей включаются в правильно отформатированную строку запроса, а недопустимые символы преобразуются в управляющие последовательности с использованием функции uri_escape ( ).
5) Создание запроса. Создается новый запрос post к сценарию поиска на удаленном сервере и используется метод content () возвращенного объекта запроса для установки содержимого строки запроса. Изменяется также значение поля Referer: заголовка объекта запроса так, чтобы оно содержало URL заполняемой формы.