Devel::Modlist - welche Module verwendet ein Programm?
Veröffentlicht von Thomas Fahle am (Permalink)
Devel::Modlist von Randy J Ray ermittelt und zeigt die Module, die von einem Perl-Programm genutzt werden, übersichtlich an.
Verwendete Module auflisten
Devel::Modlist wird auf der Kommandozeile aufgerufen.
$ perl -d:Modlist Programm.pl
Angewandt auf ein einfaches Beispielprogramm
#!/usr/bin/perl use strict; use warnings; use LWP;
liefert Devel::Modlist folgende Ausgabe auf STDERR:
AutoLoader 5.71 Carp 1.17 Config Config_git.pl Config_heavy.pl DynaLoader 1.10 Exporter 5.64_01 Exporter::Heavy 5.64_01 Fcntl 1.06 File::Spec 3.33 File::Spec::Unix 3.33 FileHandle 2.02 HTTP::Date 6.00 HTTP::Headers 5.835 HTTP::Message 5.837 HTTP::Request 5.827 HTTP::Response 5.836 HTTP::Status 5.817 IO 1.25_02 IO::File 1.14 IO::Handle 1.28 IO::Seekable 1.1 LWP 5.837 LWP::MemberMixin LWP::Protocol 5.829 LWP::UserAgent 5.835 SelectSaver 1.02 Storable 2.25 Symbol 1.07 Time::Local 1.2000 URI 1.58 URI::Escape 3.30 XSLoader 0.10 constant 1.20 overload 1.10 vars 1.01 warnings 1.09 warnings::register 1.01
Optionen
Über Optionen lässt sich das Verhalten von Devel::Modlist steuern. Die allgemeine Syntax:
perl -d:Modlist=option1[,option2,...]
stdout
Diese Option schickt die Ausgabe von Devel::Modlist zur Standardausgabe STDOUT
$ perl -d:Modlist=stdout Programm.pl
nocore
Bei Verwendung dieser Option werden die verwendeten Core-Module nicht angezeigt:
$ perl -d:Modlist=stdout,nocore Programm.pl
Angewandt auf ein obiges Beispielprogramm, liefert Devel::Modlist folgende Ausgabe
HTTP::Date 6.00 HTTP::Headers 5.835 HTTP::Message 5.837 HTTP::Request 5.827 HTTP::Response 5.836 HTTP::Status 5.817 LWP 5.837 LWP::MemberMixin LWP::Protocol 5.829 LWP::UserAgent 5.835 URI 1.58 URI::Escape 3.30
cpan, cpandist
cpan reduziert die Liste auf Module, die über das Modul CPAN installiert wurden.
perl -d:Modlist=stdout,cpan Programm.pl
Angewandt auf ein obiges Beispielprogramm, liefert Devel::Modlist folgende Ausgabe
AutoLoader 5.71 Carp 1.17 Config Config_git.pl Config_heavy.pl Exporter 5.64_01 File::Spec 3.33 HTTP::Date 6.00 HTTP::Headers 5.835 IO 1.25_02 LWP 5.837 Storable 2.25 Time::Local 1.2000 URI 1.58 XSLoader 0.10 constant 1.20
cpandist funktioniert wie cpan, gibt allerdings den Dateinamen statt des Modulnamen aus:
perl -d:Modlist=stdout,cpandist Programm.pl
Angewandt auf ein obiges Beispielprogramm, liefert Devel::Modlist folgende Ausgabe
S/SM/SMUELLER/AutoLoader-5.71.tar.gz J/JE/JESSE/perl-5.13.9.tar.gz Contact Author The Perl5 Porters Mailing List/opt/perl5.12.2/lib/5.12.2/i686-linux-thread-multi/Config_git.pl /opt/perl5.12.2/lib/5.12.2/i686-linux-thread-multi/Config_heavy.pl F/FE/FERREIRA/Exporter-5.63.tar.gz S/SM/SMUELLER/PathTools-3.33.tar.gz G/GA/GAAS/HTTP-Date-6.00.tar.gz G/GA/GAAS/HTTP-Message-6.01.tar.gz G/GB/GBARR/IO-1.25.tar.gz G/GA/GAAS/libwww-perl-6.01.tar.gz A/AM/AMS/Storable-2.25.tar.gz F/FL/FLORA/Time-Local-1.2000.tar.gz G/GA/GAAS/URI-1.58.tar.gz S/SA/SAPER/XSLoader-0.10.tar.gz S/SA/SAPER/constant-1.19.tar.gz
stop
Die Option stop lädt das Programm und führt es nicht aus. Die erst zur Laufzeit mit require oder eval geladenen Module können nicht ermittelt werden.
zerodefault, noversion
Falls die Versionsnummmer eines Moduls nicht ermittelt werden kann, setzt zerodefault diese einfach auf 0, noversion unterdrückt die Ausgabe der Versionnummern generell.
Siehe auch
- Devel::Modlist - Perl extension to collect module use information
- Module::ScanDeps - Recursively scan Perl code for dependencies
- Devel::TraceUse - show the modules your program loads, recursively
- CPAN::FindDependencies - find dependencies for modules on the CPAN
- Perl::PrereqScanner - a tool to scan your Perl code for its prerequisites
- CPAN -query, download and build perl modules from CPAN sites
- Modulabhängigkeiten ermitteln mit CPAN::FindDependencies
- Devel::TraceUse - Verwendete Module Übersichtlich auflisten