Hallo zusammen
Folgendes Problem:
Ich möchte in einem Konfigurations-Objekt Referenzen auf Klassen verwalten, um diese dann an anderen Teilen in meinem Code wieder zuzugreifen.
Beispiel:
$config->setConfig('CUI', new Curses::UI (-clear_on_exit => 1, -debug => $debug));
$config->getConfig('CUI')->set_binding(sub{exit}, "\cQ");
Das Funktioniert ganz prima.
Ich will es jetzt aber einen Schritt weitertreiben und das $config-Objekt, welches alle Referenzen gespeichert hat, an eine Klasse von mir weitergeben
my $ui = new UI(\$config);
In der Klasse selbst wird im Konstruktor über das Konfigurationsobjekt auf eine Registrierte Klasse (hier Curses::UI) zugegriffen:
sub new {
my ($self, $config) = @_;
bless $config, UI_Config;
my $main = $config->getConfig('CUI')->add(
undef, 'Window',
-title => 'Main Window',
);
Leider klappt das jedoch nicht ganz wie ich es mir wünsche. Die Fehlermeldung die ich erhalte ist:
Can't call method "add" on an undefined value at Forms/UI.pm line 8.
Ich vermute, er weiss nicht, was für ein Objekttyp $config->getConfig('CUI') zurückliefert. Weiss einer wie ich das machen kann?
Grüsse
Joel