Thread Modulversion wird als undef ausgegeben
(19 answers)
Opened by pktm at 2009-11-06 13:22 Code: (dl
)
require $module Tut nicht das was du willst. Es interpretiert den Inhalt von $module als Dateipfad und versucht die Datei zu laden. Eine Möglichkeit ein Modulename zu laden wäre ein String eval mit "use" Code: (dl
)
eval "use $module" Ein anderer den Klassennamen an "::" zu splitten Pfade generieren und alle Verzeichnisse mit @INC durchgehen und die erste vorhandene Datei mit "require" laden. Ansonsten hatte ich eine leichtere version davor mit String eval gehabt. http://sidburn.de/cgi-bin/gitweb.cgi?p=bin.git;a=b... Allerdiengs gibt das wenn man einen unbekannten Namen eingibt ein warning aus "Uninitialized value" blabla. Korrekt müsste man noch "if ($@) { print "Modul does not exists" } else { print $module->VERSION }" hinzufügen. Als ich das überarbeitet hatte habe ich aber auch gleich Class::Load zum Laden genommen anstatt ein String eval. Last edited: 2009-11-06 15:55:59 +0100 (CET) Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|