はじめに
Linux環境でPerlスクリプトを構築・保守する際、外部CPANモジュールを追加インストールすることなく利用できる「コアモジュール(標準ライブラリ)」の把握は、ポータビリティの高いコードを書く上で欠かせません。こうした標準同梱モジュールや対象Perlバージョンを手軽に調査できるユーティリティがcorelistです。本稿では、パッケージのセットアップ手順から特定モジュールの初回同梱時期の特定、複数リリース間でのモジュール差分比較まで、実務で重宝する操作テクニックを詳しく解説します。
corelistの導入と標準同梱モジュールの判定
Ubuntuシステム上で検証を行うため、まずはPerlランタイム本体およびlibmodule-corelist-perlパッケージをインストールしておきます。

corelistは、調査対象のPerlモジュールが公式ディストリビューションの標準セットに含まれているかどうか、またどのバージョンで提供されているかを即座に引き出せるコマンドラインツールです。-vオプションを指定して単体実行すると、本ツールがデータベースとして保持しているサポート対象Perlリリースの一覧がコンソールに出力されます。
⚙️ [代表的なコマンドオプション]
-v : 参照可能な全Perlバージョンを一覧表示、または特定バージョンに同梱されているモジュール群をリスト化します。-a : 指定モジュールが収録されているすべてのPerlバージョンと、それぞれの版数を横断出力します。-d : 該当モジュールが標準パッケージから非推奨(Deprecated)指定された時期やバージョンを調査します。-r : 各Perlリリースが一般公開された公式リリース日を確認します。--diff : 2つの異なるPerlリリース間における標準モジュールの差異を抽出し、比較結果を表示します。

ファイルパスのクロスプラットフォーム処理を担うFile::Specモジュールの導入時期を調べるため、corelist File::Specを実行します。
実行結果を参照すると、このライブラリはPerl 5.00405以降、公式の標準モジュールとして継続して組み込まれていることが分かります。

続いて、外部Cライブラリを必要としない純粋なPerl実装のJSONパーサーであるJSON::PPをcorelist JSON::PPで調査します。
出力された情報から、Perl v5.13.9の開発リリース以降、標準ライブラリとしてシステムに正式バンドルされるようになった事実が読み取れます。

各Perlリリースにおけるモジュールの変遷を追跡
データ構造のダンプ出力で広く使われるData::Dumperのリリース別更新履歴を把握するには、corelist -a Data::Dumperを実行します。
このコマンドにより、Perl 5.005で初めて導入されてから現代のリリースに至るまで、言語本体の更新に伴ってモジュール自身がどのバージョン番号へと刷新されてきたかの推移を一望できます。

低レイヤーのネットワーク通信を扱うSocketモジュールに関しても、同様にcorelist -a Socketでライフサイクル全体を検索します。
Perl 5系最初期から今日に至るまで常にコア機能として同梱され続け、プロトコルの進化や環境変化に合わせて細かくアップデートされてきた経緯が確認できます。

指定Perlバージョンの同梱モジュール一覧および検索
特定環境(例えばPerl 5.034)でデフォルトで利用可能なモジュールを網羅的に確認したい場合は、corelist -v 5.034を実行します。
これにより、該当ディストリビューションにプリインストールされている全標準ライブラリとそれぞれのバージョン情報が画面一杯に出力され、実行ターゲットの構成を容易に把握できます。

特定ジャンルやキーワードに関するモジュールをまとめて探す場合は、スラッシュ(/)で検索パターンを囲む正規表現検索が便利です。例えば、corelist /Digest/を実行します。
その結果、名称に「Digest」を含む各種ハッシュ計算・暗号化モジュールが一覧化され、各モジュールがどのPerlバージョンで標準入りしたかを即座に比較選定できます。

リリース間における標準モジュールの差分(Diff)検証
開発環境と運用環境でPerlのマイナーバージョンが異なる場合、ライブラリの齟齬を未然に防ぐためcorelist --diff 5.030 5.034を実行して差分を検証します。
2つのバージョン間でどのモジュールがアップデートされたのか、その差分リストが明確に対照表示されるため、スクリプト移植時の動作保証やリグレッションリスクの評価に直結します。

さらに、バージョンアップ時に標準ライブラリから除外・廃止されたモジュールを調べるには、corelist --removed 5.034を実行します。
この照会により、Perl 5.034の段階でバンドル対象から完全に切り離されたモジュール群がリストアップされるため、上位バージョン移行時に依存関係エラーでスクリプトが停止するトラブルを事前回避できます。

Linux環境においてcorelistコマンドを効果的に使いこなし、Perl標準モジュールのライフサイクルやバージョン差分を正確に読み解く方法についてまとめました。
OSや言語のデフォルト資産を的確に把握することで、余分な外部依存を持たない堅牢でメンテナブルなスクリプト設計にぜひお役立てください。