#!/usr/bin/perl use strict; my $error = ''; my (@modules,$inst); open my $oldstd, ">&STDOUT" or $error = "Kann STDOUT nicht kopieren wegen >$!<"; # STDOUT muss zwingend umgeleitet werden, weil das Modul sonst bei Ausführung des Scripts eine nicht unterdrückbare Meldung wg. fehlendem Compiler bringt! if ($error eq '') { open STDOUT,'>',"muellextutils.txt" or $error = "Kann STDOUT nicht umleiten wegen >$!<"; if ($error eq '') { eval 'use ExtUtils::Installed; $inst = ExtUtils::Installed -> new (); @modules = $inst -> modules ();'; # muss zwingend in eval, weil sonst bei einem >perl -c< die gleiche Scheißmeldung kommt! open STDOUT,">&",$oldstd; close $oldstd; } else { exit(); } } unlink "muellextutils.txt"; if (scalar @modules) { open my $invfile,">modulinventar.txt"; for my $modul (sort {lc $a cmp lc $b} @modules) { my $version = $inst -> version ($modul); if (defined $version) { print $invfile "$modul -> $version\n"; } } }