Modulabhängigkeiten ermitteln mit CPAN::FindDependencies
Veröffentlicht von Thomas Fahle am (Permalink)
Das CPAN-Modul CPAN::FindDependencies von David Cantrell findet fast alle Abhängigkeiten (dependencies) für CPAN-Module.
Beispielprogramm für die Konsole
#!/usr/bin/perl use strict; use warnings; use ExtUtils::MakeMaker; use CPAN::FindDependencies; my $mod = prompt("Bitte den Namen des Perl-Moduls eingeben: "); my @dependencies = CPAN::FindDependencies::finddeps($mod); foreach my $dep (@dependencies) { print ' ' x $dep->depth(); print $dep->name().' ('.$dep->distribution().")\n" }
Beispiel1: Abhängigkeiten für das Modul CPAN
Bitte den Namen des Perl-Moduls eingeben: CPAN CPAN (A/AN/ANDK/CPAN-1.9205.tar.gz) Scalar::Util (G/GB/GBARR/Scalar-List-Utils-1.19.tar.gz) Test::Harness (A/AN/ANDYA/Test-Harness-3.12.tar.gz) File::Spec (K/KW/KWILLIAMS/PathTools-3.2701.tar.gz) Carp (R/RG/RGARCIA/perl-5.10.0.tar.gz) Module::Build (K/KW/KWILLIAMS/Module-Build-0.2808.tar.gz) ExtUtils::CBuilder (K/KW/KWILLIAMS/ExtUtils-CBuilder-0.23.tar.gz) Test::More (M/MS/MSCHWERN/Test-Simple-0.80.tar.gz) File::Temp (T/TJ/TJENNESS/File-Temp-0.20.tar.gz)
Beispiel2: Abhängigkeiten für das Modul CPAN::FindDependencies
Bitte den Namen des Perl-Moduls eingeben: CPAN::FindDependencies WARNING: CPAN::FindDependencies: GBARR/CPAN-DistnameInfo-0.07: no META.yml WARNING: CPAN::FindDependencies: GAAS/MIME-Base64-3.07: no META.yml WARNING: CPAN::FindDependencies: GAAS/Digest-MD5-2.36: no META.yml WARNING: CPAN::FindDependencies: GAAS/HTML-Parser-3.56: no META.yml CPAN::FindDependencies (D/DC/DCANTRELL/CPAN-FindDependencies-2.0.tar.gz) Parse::CPAN::Packages (L/LB/LBROCARD/Parse-CPAN-Packages-2.27.tar.gz) Test::More (M/MS/MSCHWERN/Test-Simple-0.80.tar.gz) Test::Harness (A/AN/ANDYA/Test-Harness-3.12.tar.gz) File::Spec (K/KW/KWILLIAMS/PathTools-3.2701.tar.gz) Scalar::Util (G/GB/GBARR/Scalar-List-Utils-1.19.tar.gz) Carp (R/RG/RGARCIA/perl-5.10.0.tar.gz) Module::Build (K/KW/KWILLIAMS/Module-Build-0.2808.tar.gz) ExtUtils::CBuilder (K/KW/KWILLIAMS/ExtUtils-CBuilder-0.23.tar.gz) IO::Zlib (T/TO/TOMHUGHES/IO-Zlib-1.09.tar.gz) Compress::Zlib (P/PM/PMQS/Compress-Zlib-2.012.tar.gz) IO::Uncompress::Gunzip (P/PM/PMQS/IO-Compress-Zlib-2.012.tar.gz) Compress::Raw::Zlib (P/PM/PMQS/Compress-Raw-Zlib-2.012.tar.gz) IO::Uncompress::Base (P/PM/PMQS/IO-Compress-Base-2.012.tar.gz) version (J/JP/JPEACOCK/version-0.76.tar.gz) Class::Accessor::Fast (K/KA/KASEI/Class-Accessor-0.31.tar.gz) base (R/RG/RGARCIA/base-2.12.tar.gz) CPAN::DistnameInfo (G/GB/GBARR/CPAN-DistnameInfo-0.07.tar.gz) YAML (I/IN/INGY/YAML-0.66.tar.gz) URI::file (G/GA/GAAS/URI-1.37.tar.gz) MIME::Base64 (G/GA/GAAS/MIME-Base64-3.07.tar.gz) Module::CoreList (R/RG/RGARCIA/Module-CoreList-2.15.tar.gz) LWP::Simple (G/GA/GAAS/libwww-perl-5.813.tar.gz) Net::FTP (G/GB/GBARR/libnet-1.22.tar.gz) Digest::MD5 (G/GA/GAAS/Digest-MD5-2.36.tar.gz) HTML::Parser (G/GA/GAAS/HTML-Parser-3.56.tar.gz) HTML::Tagset (P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz)
Die oben gezeigten Warnungen (no META.yml) zeigen an, das der Author des Moduls keine Metainformationen zu den Abhängigkeiten mitgeliefert hat. Daher können hier keine weiteren Abhängigkeiten ermittelt werden.
Graphische Darstellung
Wer eine graphische Darstellung der Abhängkeiten bevorzugt, sollte einen Blick auf CPAN dependencies and test results checker riskieren.
Beispiel 3: Graphische Darstellung der Abhängigkeiten für das Modul CPAN (wie Beispiel1):