Ich möchte einen anderen Entwickler bitten, ein von mir geschriebenes Perl-Skript auszuführen. Das Skript verwendet viele CPAN-Module, die installiert werden müssen, bevor das Skript ausgeführt werden kann. Ist es möglich, das Skript (oder die perl
-Binärdatei) dazu zu bringen, eine Liste aller fehlenden Module auszugeben? Perl gibt die Namen der fehlenden Module aus, wenn ich versuche, das Skript auszuführen, aber dies ist umständlich und listet nicht alle fehlenden Module auf einmal auf. Ich möchte gerne etwas ähnliches tun:
$ cpan -i `said-script --list-deps`
Oder sogar:
$ list-deps said-script > required-modules # auf meinem Rechner
$ cpan -i `cat required-modules` # auf seinem Rechner
Gibt es einen einfachen Weg, dies zu tun? Das ist kein Showstopper, aber ich möchte das Leben des anderen Entwicklers erleichtern. (Die benötigten Module sind über mehrere Dateien verstreut, daher ist es nicht einfach für mich, die Liste von Hand zu erstellen, ohne etwas zu übersehen. Ich kenne PAR, aber es scheint etwas zu kompliziert für das, was ich will.)
Update: Danke, Manni, das wird funktionieren. Ich kannte %INC
nicht, ich kannte nur @INC
. Ich habe mich für etwas wie das hier entschieden:
print join("\n", map { s|/|::|g; s|\.pm$||; $_ } keys %INC);
Das gibt aus:
Moose::Meta::TypeConstraint::Registry
Moose::Meta::Role::Application::ToClass
Class::C3
List::Util
Imager::Color
…
Sieht so aus, als ob das funktionieren wird.