use "dynamique"

Le
Sébastien Cottalorda
Bonjour,

Je développe une application métier chargée de piloter des panneaux d=
e
signalisation.
Certains panneaux utilise un certain driver, d'autre un autre, etc

J'ai développé un module/objet par driver.

Le programme chargé de piloter un panneau découvre en court de route
quel protocole il doit parler.
Mais je n'arrive pas à charger le module.

Voici comment je m'y prends.

#!/usr/bin/perl -w;
use strict;
[snip]
my $proto = $PANNEAU->{protocole};
use PANNEAU::DRIVERS::$proto;

Mais je me fais jeter, le use ne marche pas : "syntax error".

comment m'en sortir ?
J'ai essayé ceci sans plus de résultat.
my $proto = $PANNEAU->{protocole};
require $proto;

Mais j'obtiens
Can't locate PANNEAU::DRIVERS::PARKMAT_20.pm in @INC

Par contre, si je mets en dur
use PANNEAU::DRIVERS::PARKMAT_20;
ça marche impeccablement.

Merci d'avance pour votre aide.

Sébastien
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sébastien Cottalorda
Le #18012211
Problème résolu avec :

use Module::Load;

my $proto = "PANNEAU::DRIVERS::".$PANNEAU->{protocole};
load $proto;

Sebastien
Publicité
Poster une réponse
Anonyme