Строки 1-12. Инициализация модуля. Загружается модуль Sys::Syslog, наряду с модулями POSIX, Carp, ХО::File и File::Basename. Последний будет применяться для формирования строки с именем программы, под которым будут регистрироваться в журнале сообщения об ошибках. В оставшейся части этого раздела экспортируется пять функций: init_server (), log_debug (), log_notice () , log_warn () и log_die (). Функция init_server () автоматически переводит демон в фоновый режим, открывает соединение с системой syslog и выполняет другую инициализацию времени выполнения. В последующем можно будет активировать сам демон получения информации из сети, например, как круто сделали SEO функционал на сайте trionika.com.ua. Функция log_debug () и родственные ей функции записывают сообщения в системный журнал с соответствующим приоритетом.
Строки 13-15. Определение констант. Выбираются заданный по умолчанию путь доступа к файлу PID и категория ведения журнала local0.
Строки 16-24. Подпрограмма init_server () выполняет инициализацию сервера. Путь к файлу PID берется из списка параметров подпрограммы, а если путь не указан, то он формируется в самой подпрограмме. Затем вызывается подпрограмма open_pid_file (), которая открывает новый файл PID для записи или аварийно прекращает работу, если сервер уже функционирует.
При условии, что все идет успешно, выполняется автоматический переход в фоновый режим путем вызова подпрограммы become_daemon () и осуществляется запись текущего идентификатора процесса в файл PID. После этого вызывается подпрограмма init_log () для инициализации системы syslog. Затем в основную программу возвращается текущий идентификатор процесса PID.