Perlのコアライブラリはどのように管理されていますか?

StackOverflow https://stackoverflow.com/questions/2967895

  •  24-10-2019
  •  | 
  •  

質問

私の理解から、Perlは伝統的にコア機能のみを含んでおり、人々は追加のライブラリをインストールして、あらゆる種類の便利な(そして時には非常に基本的な)ことを行います。しかし、ある時点で、デフォルトでPerlで出荷される「コアライブラリ」が登場するようになりました。そのため、これらのライブラリをインストールせずに使用できます。

Pythonから来ると、これがどのように管理されるか興味があります。具体的には:

  1. 図書館はどのように選ばれますか?
  2. ライブラリにはまだ独自のバージョン番号とリリーススケジュールがありますか?
  3. これらのライブラリを使用する際に、どのような後方互換性の保証がありますか?
  4. システム内のこれらのライブラリをアップグレードまたはダウングレードすることは一般的ですか?これはシステム全体で行われていますか?
  5. API変更を必要とするバグ修正がある場合、それはどのように起こりますか?
  6. これらのコアライブラリに機能がどのように追加されますか(もしあれば)?
役に立ちましたか?

解決

  1. 現在、他のライブラリをブートストラップ/インストールするために必要なライブラリのみが コアリスト.
  2. 一部はperl gitリポジトリにのみ含まれています。一部はCPANおよびレポでデュアルライフです。バグがリポジトリで修正され、変更がCPANバージョンにバックポートされる場合があります。 CPANで新しいリリースがあり、PERLメンテナーがモジュールでリポジトリにチェックされる場合があります。
  3. コアモジュールに頼ることができます。削除される前に非常に長い非推奨タイムスパンがあります、最近の顕著な例は Switch.
  4. パッケージ(例えば、Linux分布のためにRPMSを構築する人)はこれを正しくすることはできませんでした。含まれるパスの間違った順序(@INC)彼らのせいではありません、そして 最終的に5.12で修正されました. 。これが、システムのインストールを台無しにしないように、自分のPerlをコンパイルすることから推奨される理由です。 5.12を使用すると、CPANを使用してアップグレードバージョンのコアモジュールをインストールするだけで、システムに出荷されたものに追加インストールされますが、新しいものはインクルードパスの古いものの前に来るので、新しいものは新しいものです。あなたがいるときに1つがロードされます use/require それ。
  5. レイアウト perlpolicy.
  6. 機能とテストをプログラムし、物を文書化してからCPANでリリースするか、それぞれメンテナーに変更を適用してもらいます。これには議論が伴います p5p.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top