Perl: Installierte Modulbibliotheken ausgeben

maceis

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
Hallo zusammen,

ich meine , ich hätte bei meinem Webhoster vor einigen Tagen eine Liste entdeckt, auf der man nachsehen konnte, welche Module installiert sind.
Die Liste war mit Sicherheit dynamisch erzeugt und sie war ähnlich formatiert wie die Ausgabe von <? phpinfo(); ?>.

Leider finde ich den Link nicht mehr, und beim Support sind wohl im Auganblick nicht gerade die Blicker im Dienst ;).

Die Frage lautet nun:
Wie kann ich mir eine Liste der installierten Perl Module mit einem CGI Skript ausgeben lassen.

Probiert habe ich schon folgendes:
Code:
#!/usr/bin/perl
# ...
print "Content-type: text/html\n\n";
use ExtUtils::Installed;
my $inst    = ExtUtils::Installed->new();
my @modules = $inst->modules();
while (my $mod=pop @modules) {
        print "$mod<BR />";
    }
Als Ausgabe erhalte ich nur "Perl".
Dies steht für die Standard Module, zusätzlich installierte Module sollten aufgelistet werden.

Komisch ist das deswegen, weil auf meine Bitte hin mindestens das Modul HTML::Template nachinstalliert wurde - nach Aussage des Supports außerdem einige weiter Module. Hätte mich halt interessiert welche ;).
 
Zuletzt bearbeitet:
Naja, das läuft letztendlich auf das selbe hinaus, was ich schon probiert habe.
Einziger Unterschied ist, dass zusätzlich die Versionsnummer mit ausgegeben wird.

Das ist zwar sehr interessant, löst aber das eigentliche Problem nicht.
Trotzdem Danke für den Tipp ;).
 
schade, unter Linux funktioniert's wunderbar.

Habe auf dem Mac unter OS X (noch) keine zusätzlichen Module installiert, daher konnte ich es auch noch nicht ausprobieren.
 
Hallo,

ich war zufälligerweise auch gerade auf der Suche nach solch einem Skript und bin bei meiner Suche auf das hier gestoßen:
http://www.macosxhints.com/article.php?story=20030704111456734

Einige Dinge werden nicht korrekt angezeigt (Daten zur CPU und zum Speicher), aber das wichtigeste war für mich eben die Anzeige der installierten Module und das funktioniert (zumindest bei mir) einwandfrei.
 
MacMännchen schrieb:
schade, unter Linux funktioniert's wunderbar.
...
Nachdem mein Hoster auch Linux einsetzt, kann ich das bestätigen. Trotzdem werden grundsätzlich - genau wie unter Mac OS X - nur die Module angezeigt, die nicht Bestandteil der Perl Standard Distribution sind.
Diese kann man sich übrigens alternativ mit folgendem Kommando auflisten lassen, wobei noch eine Reihe zusätzlicher Informationen ausgegeben werden.
Code:
perlodc perllocal
Das funktioniert allerdings nur mit den Modulen, die entsprechend den Design Richtlinien installiert wurden, was für die CPAN Module wohl vorausgesetzt werden kann.

Den Tipp von mac-o-rama habe ich auch schon ausprobiert.
Super, das ist genau das, was ich gesucht habe.
Vielen Dank.
 
So, und eben jetzt kommt auch die neue Antwort Email vom Support:
http://dd16230.kasserver.com/test.html -> Punkt Sys-Info (ganz unten)

Überraschend ist, dass hier 720 Module angezeigt werden während "unser" Skript nur 646 findet. Sehr seltsam.
 
Hmm, das ist allerdings merkwürdig. Vielleicht gibt "unser" Skript ja nicht die Standard-Module aus, sondern nur die zusätzlich installierten? Wäre das eine plausible Erklärung: 720 - 646 = 74 Standard-Module? Das ist nur eine Vermutung, beweisen kann ich es nicht.

Ansonsten vielleicht mal den Support fragen, vielleicht können die Dir ja die Differenz erklären.
 
Nein, bei Perl sind wesentlich mehr als 74 Standardmodule dabei.
Bei mir werden lokal 701 Module gefunden und ich hab sicher nicht 627 Module nachinstalliert ;).

Außerdem widerspricht das der Funktionsweise des Skripts.
Diese durchsucht anscheinende systematisch @INC und sieht nach, was da für Module vorhanden sind.

Ist aber auch nicht wirklich wichtig.
Ich hab meine Informationsquelle und ob ich jemals über die Diskrepanz stolpern werde ist eher zu bezweifeln.
 
Hallo nochmal,

ich hab' das jetzt ein wenig weiter untersucht.

Tatsache ist, dass perldigger nicht alle Module findet.
Woran genau das liegt, konnt ich in dem verwurschtelten und nicht besonders gut kommentierten Code auf die Schnelle nicht herausfinden.

Außerdem sind mir einige kleinere Fehler aufgefallen,

Das CPU-, Memory-Informationen etc. am Mac und online nicht angezeigt werden ist nicht weiter verwunderlich, da die entsprechenden Kommandos auf dem proc System basieren, das am Mac nicht exisiert und Hosting Kunden i.d.R. nicht zugänflich sind.

Grüße
maceis
 
Zurück
Oben Unten