私が書いたPerlスクリプトを別の開発者に実行してもらいたい。スクリプトは、スクリプトを実行する前にインストールする必要のある多くのCPANモジュールを使用します。スクリプト(またはperl
バイナリ)を作成して、欠落しているすべてのモジュールのリストをダンプすることは可能ですか?スクリプトを実行しようとすると、Perlは欠落しているモジュールの名前を出力しますが、これは冗長であり、欠落しているすべてのモジュールを一度にリストするわけではありません。私は次のようなことをしたいと思います:
$ cpan -i `said-script --list-deps`
あるいは:
$ list-deps said-script > required-modules # on my machine
$ cpan -i `cat required-modules` # on his machine
それを行う簡単な方法はありますか?これはショーストッパーではありませんが、他の開発者の生活を楽にしていきたいと思います。(必要なモジュールが複数のファイルに散在しているため、何も見逃さずに手作業でリストを作成するのは簡単ではありません。PARについては知っていますが、私が望むものには少し複雑すぎるようです。)
更新:ありがとう、マニ、それでいい。私はについて知りませんでした%INC
、私はについてしか知りませんでした@INC
。私はこのようなもので解決しました:
print join("\n", map { s|/|::|g; s|\.pm$||; $_ } keys %INC);
どちらが印刷されますか:
Moose::Meta::TypeConstraint::Registry
Moose::Meta::Role::Application::ToClass
Class::C3
List::Util
Imager::Color
…
これはうまくいくようです。