Предназначен для установки пути поиска вашего модуля. В частности, он устанавливает местоположение по умолчанию (первое местоположение проверено) в локальном каталоге пользователя perl/
. Он не только добавляет этот каталог, но и делает его новым корнем для @INC
. Это делается для каждой записи в @ INC. В среде с ограниченным доступом, такой как среда, в которой используется CPanel, это гарантирует, что ваши скрипты (общие cgi) будут использовать ваши модули над любыми другими.
НАЧАТЬ означает, что это происходит до того, как какой-либо код не находится в блоке.
Первая строка определяет, существует ли /home/root/perl
и является ли он каталогом. Если оба имеют значение true, он присваивает это $base_module_dir
, в противном случае присваивает <user home>/perl/
переменной. Помните, что в perl вы можете индексировать вызов функции напрямую, если она возвращает список.
Находит домашний каталог пользователя с getpwuid($>)
. getpwuid()
получает информацию об учетной записи пользователя для данного пользователя (обычно из passwd в системе Unix) и возвращает ее в виде списка. $>
- эффективный идентификатор пользователя скрипта. Причиной индекса 7 является расположение домашнего каталога в списке (и это 8-е поле в passwd, если память служит).
Затем он добавляет ВСЕ записи в @INC
с $base_module_dir
и вставляет эти измененные записи в начало @INC
. Так что это не просто добавление $base_module_dir
в качестве каталога, но и добавление его в качестве нового корня для всех записей в @INC
. Вот почему он использует map
вместо простого добавления одной записи.