Thread Bedingtes Einbinden von Modulen? (6 answers)
Opened by Ronnie at 2005-06-26 17:12

Strat
 2005-06-27 15:06
#55729 #55729
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Crian,27.06.2005, 09:08]Nimm einfach require statt use, dann sollte es mit Deiner if-else-Abfrage klappen.[/quote]
ich fuerchte, das wird nicht funktionieren; auch require bricht ab, wenn es das modul nicht finden/laden kann...
besser pq's loesung, oder auch:
Code: (dl )
1
2
3
4
5
my $class = do {
 eval "use MyController";
 $@ ? "DefController" : "MyController";
};
my $cont = $class->new();

und so kannst du auch spaeter abfragen, was in $class steht, und so optional die Erweiterungen verwenden
Code: (dl )
1
2
3
4
5
6
if ($class eq 'MyController') {
 $cont->somethingEnhanced();
}
else {
 $cont->basicStuff1(); $cont->basicStuff2(); ...
}

ok, $ref($cont) eq 'MyController' wuerde dasselbe machen, und das auch noch sicherer (was passiert denn, wenn es zwei verschiedene Objekte gibt? eins vom typ DevController und eins von MyController?)\n\n

<!--EDIT|Strat|1119870646-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Bedingtes Einbinden von Modulen?