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):

CPANdependenciesandtestresultschecker.png

Siehe auch

Weitere Posts