biont
Grünschnabel
Guten Morgen zusammen,
ich hole mir aus einem XML file zu beliebig vielen "Signalen" meine Eigenschaften und möchte sie in der selben Anzahl von Objekten einer Klasse speichern, die alle Eigenschaften aufnimmt und Zugriffsmethoden dazu bereitstellt (inklusive Wertebereichsüberprüfung uns Plausibilitätsprüfung).
Ausschnitt aus XML:
Das Muster sollte damit klar sein.
Aber jetzt zu meinem Problem: ich kann problemlos eine Instanz/Objekt aus meiner Klasse erstellen und befüllen. Aber wie kann ich den Namen des Objektes dynamisch aus einem String erstellen und dann auch mit Hilfe des Strings darauf zugreifen?
Beispiel (Constructor ist new(); eigenschaft1() ist die Zugriffsmethode auf die gleichnamige, klasseneigene Variable und liefert den Wert der Variablen zurück):
Klar funktioniert der letzte Teil so nicht, aber ich habe einfach keine Idee (mehr), wie ich eine unbekannte Anzahl an Objekten durch-benamen kann und dann auch gezielt Aufrufe zu gestalten.
Einen Tipp, wie mein Ansatz doch funktionieren könnte, oder wie "man" das in Perl eben "richtig" macht, wüsste ich sehr zu schätzen.
Danke schonmal vorab...
ich hole mir aus einem XML file zu beliebig vielen "Signalen" meine Eigenschaften und möchte sie in der selben Anzahl von Objekten einer Klasse speichern, die alle Eigenschaften aufnimmt und Zugriffsmethoden dazu bereitstellt (inklusive Wertebereichsüberprüfung uns Plausibilitätsprüfung).
Ausschnitt aus XML:
Code:
...
<SIGNAL>
<EIGENSCHAFT1>xyz</EIGENSCHAFT1>
<EIGENSCHAFT2>klm</EIGENSCHAFT2>
<EIGENSCHAFT3>abc</EIGENSCHAFT3>
</SIGNAL>
<SIGNAL>
...
Das Muster sollte damit klar sein.
Aber jetzt zu meinem Problem: ich kann problemlos eine Instanz/Objekt aus meiner Klasse erstellen und befüllen. Aber wie kann ich den Namen des Objektes dynamisch aus einem String erstellen und dann auch mit Hilfe des Strings darauf zugreifen?
Beispiel (Constructor ist new(); eigenschaft1() ist die Zugriffsmethode auf die gleichnamige, klasseneigene Variable und liefert den Wert der Variablen zurück):
Code:
# funktioniert
my $name = "blabla"; # Daten aus xml
my $obj1 = ClassName->new();
$obj1->eigenschaft1(name);
print $obj1->eigenschaft1."\n";
# funktioniert nicht
my $test = "tralala";
my ${$test} = ClassName->new();
${$test}->eigenschaft1(name); # soll die gleiche Wirkung haben, wie nächste Zeile
$tralala->eigenschaft1(name);
Klar funktioniert der letzte Teil so nicht, aber ich habe einfach keine Idee (mehr), wie ich eine unbekannte Anzahl an Objekten durch-benamen kann und dann auch gezielt Aufrufe zu gestalten.
Einen Tipp, wie mein Ansatz doch funktionieren könnte, oder wie "man" das in Perl eben "richtig" macht, wüsste ich sehr zu schätzen.
Danke schonmal vorab...