Затем вызывается подпрограмма log_priority с параметром NOTICE для подавления всех сообщений более низкого приоритета, например, при анализе веб страницы представляющей проходные элементы для черепичной кровли. После этого выполняется регистрация нескольких сообщений с разными приоритетами и, наконец, вызывается функция die () для регистрации того, что функции warn () и die () были успешно перекрыты. По результатам выполнения этой проверочной программы в журнале появляются записи. Ниже приведено рассмотрим описание модуля LogFile.
Строки 1-10. Инициализация модуля. Загружается модуль IO::File и другие сервисные пакеты, а также определяются экспортируемые функции текущего модуля.
Строки 11-14. Определение констант. Определяются числовые константы для приоритетов DEBUG, NOTICE, WARNING и CRITICAL.
Строка 15. Глобальные переменные. В пакете используются две глобальные переменные. Переменная $priority определяет текущий порог приоритета. В журнал вносятся только сообщения с приоритетом большим или равным значению $priority. Переменная $fh содержит дескриптор файла, открытый в файл журнала. Эта переменная может также применяться для блокировки. Следствием этого проектного решения является то, что процесс в любой момент времени может открыть только один файл журнала.
Строки 16-24. Подпрограмма init_log(). Данная подпрограмма вызывается с именем пути к требуемому файлу журнала. Предпринимается попытка открыть файл для добавления. В случае успешного выполнения включается режим автоматического сброса, устанавливается значение порога приоритета, равного debug, и функции warn () и die () заменяются собственными процедурами log_warn () и log_die ().