überprüfen ob ein Perlmodul istalliert ist ... aber wie?

LrIuNlUzX

Mitglied
Hi,

ich will vor dem einbinden eines Modus überprüfen ob das modul installiert ist.

eine binden tut ich module ja über z.B.:
Code:
use DBI;
wenn jetzt das Modul nicht istalliert ist bricht Perl ab und bringt ne Fehlermeldung.


Ich will aber zu erst überprüfen ob es installiert ist, und wenn dies nicht der fall ist, soll dies abgefangen werden, und nicht versucht werden das Modul einzubinden um dann eine userverständliche Fehlermeldung auszugeben.
 
Ich habe die Lösung selber rausbekommen.

Hier der Code:

Code:
my $missing=0;
my $needed;
my $modules;
my $er;
my $cmd;

$modules = 'DBI,CGI';

print "Content-type: text/html\n\n";
print '<table>';
foreach my $i (split(',',$modules)) {
	$cmd='perl -we "use warnings;use strict; ';
	if (substr($i,0,1) ne "-") {
		$cmd.=" use $i;\" 2>&1";
	} else {
		$cmd.=" no  ".substr($i,1).";\" 2>&1";
	}
	$er=`$cmd`;
	$needed=$?;
	if (! defined $er) {$er="Error $needed";}
	if ($needed != 0 ) {$missing=1;}
	if ($needed ==0 ) {
		print "Ok.\t\t$i\n";
	} elsif ($needed ==512) {
		print "Missing\t\t$i\n";
	} else {
		print "$i\t\t$cmd returned $needed : $er\n";
	}
}
print '</table>';
 
Zurück