Thread Modulversion wird als undef ausgegeben (19 answers)
Opened by pktm at 2009-11-06 13:22

sid burn
 2009-11-06 15:50
#127917 #127917
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
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

View full thread Modulversion wird als undef ausgegeben