cpanfileとかMakefile.PLとかBUILD.PLとかcpanmとかcartonとか

自分の中でこんがらがってたのでまとめました。

cpanmとcartonの違いについて

どちらもモジュールをインストールするものです。

carton installの挙動は

cpanm --installdeps -L local/ . 

とだいたい同じ。

carton execの挙動は

perl -Mlib::core::only -Mlib=local/lib/perl5/

とだいたい同じ。

cartonはその上で提供していることは、
carton.lock というファイルにモジュールのバージョンとか記録しててくれて、いいかんじにバージョンを固定できる。


疑問点。
cpanfileというのが出てきて、cpanmでもモジュールのバージョンを固定できるようになった。
cartonを使ったほうが良い場合というのはどういう状況なのだろう?

ExtUtils::MakeMaker、Module::Build、Module::Install

以下の記事に、知りたいことがドストライクで書かれていた。とても分かりやすい。
おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史

他の参照ページ。