Hi,
Sorry, wenn der Tthread auseinanderfliegt, ich musste erst mal meinen Zugang umstellen, da wir hir auf Arbeit ein bescheuertes Mailsyetme haben...
Steffen Schwigon schwigon@webit.de schrieb:
108 my $std_rechnungadr = $kunde->getStdRechnungsadr(); 109 bless $std_rechnungadr,"Adresse";
Die Funktion getStdRechnungsadr() sollte bereits ein Objekt der Klasse "Adresse" liefern, also intern z.B. ein
$a = Adresse->new(); # ... return $a;
ausführen.
Das macht sie ja auch, allerdings wird kein neues erzeugt, sondern ein bereits vorhandenes zurückgegeben. Der Kunde ist nämlich schon komplett... Im XMLHelper sind die Klassen Kunde und Adresse zwar mit 'use' eingebunden, aber weiss er wirklich, was er in dem Moment erhält? Etwas weiter oben mache ich folgendes:
foreach my $kunde (@kundenliste){ bless $kunde,"Kunde"; $logger->debug( "bei Kunde: ". $kunde->getKundennummer() ); ....
Was ohne das bless nicht funktioniert.
In der eigentlichen Applikation solltest Du kein bless brauchen, das sollte auf niederer Ebene, konkret im Konstruktor verborgen sein.
Der XMLHelper gehört nicht zur Applikation, sondern ist eine Klasse wie Kunde oder Adresse. Ich wollte nur nicht den ganzen XML-Krims mit zum Kunden packen, wo er auch nicht hingehört. Meine App. erstellt ein Array von KundenObjekten @kundenliste, die dann dem XMLHelper zum tranformieren gegeben wird. Jedes Kundenobjekt enthält wiederum ein paar Adressobjekte. Aber ich glaube, ich habe den Fehler gerade gefunden:
In $kunde wird eine Refernz auf das AdressObjekt gespeichert, nicht das Objekt selber.....
Das OO-Tutorial via "man perltoot" ist IMHO ganz brauchbar für diese Sachen.
Habe ich mir schon reingezogen , half mir nicht wirklich weiter ...
Mit freundlichen Grüßen
Jens Puruckherr