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

Weitere Posts