Hi,
Die Kurzversion:
Wie kann ich in Perl
a) Klassen dynamisch zur Laufzeit erzeugen,
b) anschl. mit einer festen Superklasse verknüpfen (@ISA)
c) und weiters einige Eigenschaften abändern (Constanten hinzufügen)?
Entweder, ich suche
- mit den falschen Suchbegriffen
- nach etwas, was es nicht gibt
- übersehe die Lösungshinweise einfach nur
- oder ich suche wieder mal etwas, was kaum jemand weiß
(Das ist jetzt allerdings keine Frage von mir und ja: Mehrfachantworten sind darauf möglich ;))
Jedenfalls weiß ich nicht mehr weiter. Bin also dankbar für alle Hinweise!
danke und salut
Sven
Hier die Langversion zur Info:
Vielleicht gehe ich ja auch nur ein einfaches Problem, viel zu kompliziert an:
Ich verwende den tie-Befehl in Perl um Tabellenfelder aus einer MySQL-DB in einer FastCGI-Anwendung abzufragen und zu schreiben. Das ist sehr schön, komfortabel.
Ich brauche also nicht mühsam SELECTS und UPDATES durchführen, a la "UPDATE tabelle SET WERT=wert WHERE ID=x"
sondern ich schreibe einfach den neuen Wert per
$WERT = wert;
und die Perlklasse, die mit dem tie an die Variable gebunden wurde macht im Hintergrund den Rest.
Mein Problem ist jetzt allerdings, dass der Speicherverbrauch mit größeren Tabellen unnötig ansteigt.
Denn derzeit speichere ich z.B. bei jeder Instanz den Feldbezeichner (z.B. ID, PARENT, ...), obwohl dieser bei allen Feldern derselben Spalte ja gleich ist.
Ich könnte also hergehen und jeweils eine TIE-Klasse für ID, PARENT, ... usw. von einer Superklasse ableiten und nur mit einer anderen Konstante für den Feldbezeichner versehen. Die Konstante ist also nur einmal in der Klasse gespeichert, anstatt vielfach in jeder Instanz!
Das Problem ist nur, dass sich in einem anderen Bereich der Software bestimmte Feldbezeichner aufgrund der Konfiguration von Server zu Server unterscheiden. Sprich die Konfiguration bestimmt erst zur Laufzeit, wie diese Feldbezeichner/Konstanten heißen!
Daher kann ich die verschiedenen Klassen nicht statisch erstellen, sondern müsste sie zu Laufzeit dynamisch in Abhängigkeit der Konfiguration generieren. Daher eben meine Frage.
a) Klassen dynamisch zur Laufzeit erzeugen,
b) anschl. mit einer festen Superklasse verknüpfen (@ISA)
c) und weiters einige Eigenschaften abändern (Constanten hinzufügen)?
Für ganz andere Lösungen bin ich natürlich auch sehr dankbar.