Введение
При разработке и сопровождении скриптов в операционных системах Linux нередко требуется выяснить, входит ли нужная библиотека в стандартный комплект поставки интерпретатора Perl или же потребуется её отдельная инсталляция из CPAN либо репозиториев дистрибутива. Для решения этой задачи служит консольная утилита corelist. Ниже рассмотрен процесс её развёртывания, базовый синтаксис, определение истории появления библиотек в различных ветках Perl, а также сравнительный анализ версий.
Установка corelist и базовый синтаксис запросов
Для работы с инструментом в среде Ubuntu достаточно инсталлировать базовый рантайм языка вместе с пакетом libmodule-corelist-perl, обратившись к менеджеру пакетов APT:

Инструмент corelist обращается к встроенной базе метаданных, позволяя мгновенно выяснить статус любого модуля в официальном дистрибутиве Perl. Флаг -v без дополнительных параметров выводит перечень всех поддерживаемых утилитой релизов интерпретатора.
⚙️ [Ключевые параметры запуска]
-v : отображает полный перечень поддерживаемых выпусков Perl либо выводит состав библиотек конкретной версии.-a : выводит исчерпывающую хронологию версий модуля по всем существующим релизам языка.-d : позволяет определить выпуск, начиная с которого модуль признан устаревшим (deprecated).-r : предоставляет точные даты публикации официальных релизов Perl.--diff : сопоставляет структуру двух редакций интерпретатора и генерирует отчет о расхождениях в библиотеках.

Чтобы выяснить, с какого момента системная библиотека манипуляции файловыми путями File::Spec стала поставляться из коробки, выполним следующую команду:
Запрос возвращает точные сведения: компонент File::Spec впервые появился в составе дистрибутива Perl версии 5.00405.

Аналогичным образом проверяется парсер JSON::PP, написанный на чистом Perl:
Вывод терминала подтверждает, что сериализатор JSON::PP официально интегрирован в базовую поставку начиная с выпуска Perl v5.13.9.

Отслеживание истории изменений библиотек по всем выпускам
Флаг -a открывает доступ к полной эволюции интересующего пакета. Запустим анализ для средства форматированного вывода структур данных Data::Dumper:
В выводе консоли наглядно видно, что Data::Dumper дебютировал в релизе 5.005, после чего его внутренняя версия последовательно обновлялась при каждом крупном обновлении среды выполнения.

Проверим сетевой интерфейс низкоуровневых сокетов с помощью команды corelist -a Socket:
Сгенерированный отчет показывает непрерывную поддержку модуля Socket со времен первых сборок ветки Perl 5, отражая постепенную модернизацию его кодовой базы от релиза к релизу.

Исследование состава конкретного релиза и поиск по шаблону
Если перед инженером стоит задача изучить полный набор библиотек фиксированного дистрибутива (например, Perl 5.034), используется флаг -v с указанием версии:
Утилита формирует исчерпывающий каталог стандартных модулей с соответствующими номерами сборок, доступных по умолчанию в целевой среде исполнения без обращения к сторонним репозиториям.

Для фильтрации списка по маске имени поддерживаются регулярные выражения, обрамленные прямыми слэшами (/.../). Выполним поиск всех криптографических компонентов хэширования:
Консоль выведет семейство модулей, имя которых содержит фрагмент ‘Digest’, сопроводив каждую найденную запись версией Perl, в которой она была впервые представлена.

Сравнение редакций Perl и выявление исключенных компонентов
Перед обновлением среды на серверах критически важно предотвратить возможные регрессии. Сравнить модульные составы выпусков 5.030 и 5.034 позволяет флаг --diff:
Сформированный отчет наглядно подсвечивает изменения версий пакетов между релизами, помогая оценить совместимость существующей кодовой базы с новым окружением.

Кроме того, команда corelist --removed 5.034 помогает выявить модули, которые были полностью выведены из стандартного комплекта поставки в указанном релизе:
Полученный список предупреждает системного администратора о необходимости явной установки устаревших или исключенных пакетов через CPAN, исключая сбои при миграции на более свежие версии интерпретатора.

Утилита corelist представляет собой компактный, но мощный инструмент для аудита стандартной библиотеки Perl. Грамотное использование её возможностей избавляет от избыточных внешних зависимостей и существенно упрощает планирование межверсионных обновлений на серверах под управлением Linux.