Perl wird bereits mit vielen, häufig genutzten, Standardmodulen ausgeliefert. Noch viel mehr nützliche Module findet man auf CPAN.
Manchmal möchte man etwas genauer wissen, welche Module in welcher Version auf dem System installiert sind.
Eine einfache Methode ist der Aufruf von perldoc perllocal auf der Kommandozeile, dessen Ausgabe sich auch irgendwie parsen lässt.
Aber, mehr Licht ins Dunkel bringt das CPAN-Modul CPANPLUS::Backend von Jos Boumans.
Statt vieler Worte ein einfaches Beispiel:
Das nachfolgende kleine Programm ermittelt die Namen, Versionen und Beschreibungen der installierten Perl-Module auf einem Linux-System.
#!/usr/bin/perl # # perl-module.pl # use warnings; use strict; use CPANPLUS::Backend; my $sep = '|'; my $cb = CPANPLUS::Backend->new; my @modules = $cb->installed(); foreach my $module (@modules) { # $module is a CPANPLUS::Module object # get the module's information if ($module->module()) { print $module->module(); } else { print $module->name(); } print $sep; #Record Separator # get the module's description if ($module->description() ) { print $module->description(); } else { print "Missing description"; } print $sep; #Record Separator # get the module's version print $module->version(); # automatically returns 0.0 if undef print "\n"; } ## foreach __END__
Das erzeugt in etwa folgende Ausgabe (gekürzt):
XML::Simple|Easy API to maintain XML (esp config files)|2.16 XML::Twig|A module for easy processing of XML|3.29 XML::Twig::XPath|Missing description|0.02
Also eine Tabelle mit drei Spalten, jeweils getrennt durch einen senkrechten Strich (|).
Weiterverarbeitung der Daten
Wenn man den Texttrenner (Separator) vernünftig wählt, lässt sich die Ausgabe auch in OpenOffice Calc oder in Microsoft Excel weiterverarbeiten. Einfach als Textdatei importieren, den gewünschten Texttrenner wählen, und schon ist der Bericht weitgehend geschäftsführergeeignet.Siehe auch
- CPANPLUS::Backend
- CPANPLUS
- Alvar Freude: CPAN Module entfernen / deinstallieren
Oder als ASCII-Tabelle ausgeben.