Perl-Version und verfügbare PMs ermitteln

Moin,

wie bekommt man eigentlich auf einem System, das man selber nicht administriert, heraus, welche Perl-Version installiert ist und welche PMs verfügbar sind? Gibt es da überhaupt eine konkrete Abfrage für, oder muss man bei letzterem über Try & Error gehen?

Kristian

Hallo,

wie bekommt man eigentlich auf einem System, das man selber
nicht administriert, heraus, welche Perl-Version installiert
ist

$ perl --version

This is perl, v5.8.4 built for i386-linux-thread-multi
...

und welche PMs verfügbar sind? Gibt es da überhaupt eine
konkrete Abfrage für, oder muss man bei letzterem über Try &
Error gehen?

Aus perldoc -q module:

 How do I find which modules are installed on my system?

 You can use the ExtUtils::Installed module to show all installed dis-
 tributions, although it can take awhile to do its magic. The standard
 library which comes with Perl just shows up as "Perl" (although you can
 get those with Module::CoreList).

 use ExtUtils::Installed;

 my $inst = ExtUtils::Installed-\>new();
 my @modules = $inst-\>modules();

 If you want a list of all of the Perl module filenames, you can use
 File::Find::Rule.

 use File::Find::Rule;

 my @files = File::Find::Rule-\>file()-\>name( '\*.pm' )-\>in( @INC );

 If you do not have that module, you can do the same thing with
 File::Find which is part of the standard library.

 use File::Find;
 my @files;

 find sub { push @files, $File::Find::name if -f \_ && /\.pm$/ },
 @INC;

 print join "\n", @files;

 If you simply need to quickly check to see if a module is available,
 you can check for its documentation. If you can read the documentation
 the module is most likely installed. If you cannot read the documenta-
 tion, the module might not have any (in rare cases).

 prompt% perldoc Module::Name

 You can also try to include the module in a one-liner to see if perl
 finds it.

 perl -MModule::Name -e1

HTH,
Moritz

This is perl, v5.8.4 built for i386-linux-thread-multi

Das hat schon mal geklappt. Auf dem einen ist 5.003 für Solaris, und auf dem anderen 5.8.3 für Linux (Linux auf einer IBM-Kiste?)

use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new();
my @modules = $inst->modules();

Das klappt auf dem neueren auch. Allerdings kriege ich nur „PDF::API2“ und „Perl“ zurück. Der ganze Rest scheint also in der Standard-Library zu stecken. Beispielsweise MIME::BASE64.

Aber wie kann ich erfahren, was von diesem Standard abgedeckt ist? Gibt´s da ´ne Liste unter http://www.perl.com/ oderso? Habe da auf Anhieb nichts gefunden. Und perldoc scheint hier nicht zu laufen oder nichts zu liefern.

Hallo,

Das klappt auf dem neueren auch. Allerdings kriege ich nur
„PDF::API2“ und „Perl“ zurück. Der ganze Rest scheint also in
der Standard-Library zu stecken. Beispielsweise MIME::BASE64.

Aber wie kann ich erfahren, was von diesem Standard abgedeckt
ist?

perldoc perlmodlib

Grüße,
Moritz