Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

use "dynamique"

1 réponse
Avatar
Sébastien Cottalorda
Bonjour,

Je d=E9veloppe une application m=E9tier charg=E9e de piloter des panneaux d=
e
signalisation.
Certains panneaux utilise un certain driver, d'autre un autre, etc...

J'ai d=E9velopp=E9 un module/objet par driver.

Le programme charg=E9 de piloter un panneau d=E9couvre en court de route
quel protocole il doit parler.
Mais je n'arrive pas =E0 charger le module.

Voici comment je m'y prends.

#!/usr/bin/perl -w;
use strict;
[snip]
my $proto =3D $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=E9 ceci sans plus de r=E9sultat.
my $proto =3D $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;
=E7a marche impeccablement.

Merci d'avance pour votre aide.

S=E9bastien

1 réponse

Avatar
Sébastien Cottalorda
Problème résolu avec :

use Module::Load;

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

Sebastien