Формирование имени файла на локальном компьютере сводится к извлечению той части пути доступа к файлу, которая относится к имени файла (строка 34); при этом для извлечения самого правого компонента URL изображения выполняется сопоставление с образцом.
Теперь вызывается метод mirror ( ) объекта агента пользователя для копирования файла изображения с удаленного компьютера или хоста в локальную файловую систему и выводится сообщение с кодом состояния. Обратите внимание, что копия объекта агента пользователя получена из ссылки на хеш синтаксического анализатора. Это исключает необходимость создания нового объекта агента пользователя.
Строки 38-46. Метод get_basic_credentials (). Этот метод аналогичен применяемому в предыдущих версиях.
Сценарий mirror_images.pl в том виде, в каком он есть, имеет небольшой недостаток. Зеркальные копии всех изображений записываются в один и тот же каталог. При этом принимается попытка обнаружить совпадение имен изображений не только на всех узлах, но даже на одном и том же узле, что может произойти после удаления информации о пути доступа к изображению (конфликт имен может, например, возникнуть при создании зеркальных копий изображений с именами расположенных на удаленном сервере).
Чтобы сделать этот сценарий универсальным, можно предусмотреть запись каждого изображения в отдельный подкаталог, названный по имени удаленного хоста и повторяющий путь к файлу изображения на данном узле. Это можно выполнить относительно просто, объединив методы host () и path () модуля URI функциями dir_name() и mkpath (), импортируемыми из модулей File::Path и File::Basename.