Modulabhängigkeiten ermitteln mit CPAN::FindDependencies

| | Kommentare (0)

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

Jetzt kommentieren

Über diese Seite

Diese Seite enthält einen einen einzelnen Eintrag von Thomas Fahle vom 21.07.08 19:25.

Temporäre Dateien sicher erzeugen - File::Temp ist der vorherige Eintrag in diesem Blog.

Datenstrukturen visualisieren mit GraphViz::Data::Grapher ist der nächste Eintrag in diesem Blog.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Fachzeitschriften

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.