[Toulouse-pm] chargement differe de module dynamique ?

eric gerbier eric.gerbier at free.fr
Mon Dec 2 08:00:01 CST 2002


bonjour

je ne sais pas si c'est un bon endroit pour poser ma question, mais ca concerne 
perl :)


j'ai un petit script perl qui marche, mais que je voudrais ameliorer.
il utilise un module perl RRDs, et je voudrais afficher un message si le module
n'est pas present sur la machine.
J'ai trouve la solution dans le "perl cookbook", mais j'ai un probleme sur l'import:

mon script d'origine :
################################
#!/usr/bin/perl -w

use strict;

use RRDs;

my $hash = RRDs::info "gauge.rrd";
foreach my $key (keys %$hash){
            print "$key = $$hash{$key}\n";
}

my $err = RRDs::error;

print " err= $err" if $err;

###############################################
mon script modifie :

#!/usr/bin/perl -w

use strict;

eval "require RRDs";
die "module RRDs pas trouve : $@\n" if $@;
RRDs->import();

my $hash = RRDs::info "gauge.rrd";
foreach my $key (keys %$hash){
            print "$key = $$hash{$key}\n";
}

my $err = RRDs::error;

print " err= $err" if $err;
##############################################
les erreurs qu'il me sort
String found where operator expected at ./essai2.pl line 9, near "RRDs::info "ga
uge.rrd""
     (Do you need to predeclare RRDs::info?)
syntax error at ./essai2.pl line 9, near "RRDs::info "gauge.rrd""
Bareword "RRDs::error" not allowed while "strict subs" in use at ./essai2.pl lin
e 14.
Execution of ./essai2.pl aborted due to compilation errors.

########################################
en regardant le contenu du package (cf ci-dessous), il n'y a pas de fonction 
import, ni
d'heritage de Exporter, donc pas de fonction d'import : comment faire ?

package RRDs;

use strict;
use vars qw(@ISA $VERSION);

@ISA = qw(DynaLoader);

require DynaLoader;

$VERSION = 1.000391;

bootstrap RRDs $VERSION;

1;
##################################################
-- 
Eric Gerbier
http://eric.gerbier.free.fr




More information about the Toulouse-pm mailing list