Hallo zusammen
Ich möchte bei meinem aktuellen Projekt input und output Module durch eine XML-Konfiguration austauschen können. Die XML Konfiguration liefert zusätzlich auch noch die Modul-Abhängige Konfiguration.
Die Module selbst müssen dann einfach gewisse Funktionen implementieren (so Vererbungs-mässig bei OO Programmierung).
Vereinfacht soll dieser Code:
#!/usr/bin/perl -w
use strict;
use db;
&init("user","passwort");
&writeReport;
Zu folgendem werden:
#!/usr/bin/perl -w
use strict;
use XMLConfig;
my $addon = &XMLGetAddon;
eval ("use $addon");
&init(&XMLGetConfig);
&writeReport;
Die Konfiguration hinter XMLGetAddon und XMLGetConfig kann dann beispielsweise so ausschauen:
<root>
<output module="file">
<config type="filename">test.out</config>
<config type="permissions">755</config>
</output>
</root>
Ich hab mal einen kleinen Prototypen geschrieben bei dem das prima funktionierte. Da ich dort jedoch kaum Funktionalität habe (und ich selbst noch relativ wenig Erfahrung mit Perl), wollte ich euch fragen, ob das eine saubere Methode ist. Vielleicht hat jemand auch Stichworte über Gefahren die auftreten könnten!
Geplant sind Standard-Datentypen (Hash Arrays) die übergeben und zurückgegeben werden. Ich habe also nicht vor, Namespaceübergreifende Variablen zu verwenden.
Gruess
Joel
P.S. ich hab natürlich gegoogelt, aber "dynamic module loading perl" kriegte ich vorallem DynaLoader Ergebnisse.