Schrift
[thread]7789[/thread]

oop in perl: aufruf von einer funktion



<< >> 5 Einträge, 1 Seite
Gast Gast
 2006-03-13 21:57
#63780 #63780
hallo,
ich bin zur zeit dabei einen für mich fremden perl code zu bearbeiten und bin auf eine sache gestoßen, die ich (noch) nicht kenne. und zwar besteht dieser perl code aus ner menge packages. irgendwo im code wird eine methode aufgerufen mit folgendem befehl: $self->init_label; ich dachte immer dadurch wird eine methode in einem bestimmten package aufgerufen.nun lass ich mir $self ausgeben und bekomme folgende Ausgabe: Test::Test2::packageName=HASH(0x1decc64). Und damit kann ich nichts anfangen, bzw. mit = HASH(). Also ich weiß natürlich was ein Hash ist aber diese Syntax ist mir noch nicht untergekommen besonders bezogen auf den Aufruf. in diesem Package gibt es auch keine Methode init_label und ich versteh nicht, wie da etwas aufgerufen wird.

Ich hoffe, jemand versteht was ich meine, ich weiß, dass es nicht wirklich gut erklärt ist, aber ich kann es nicht besser. code kann ich leider auch nicht posten, da er erstens viel zu komplex ist und zweitens nicht öffentlich ist.

Aber ich würde mich freuen, wenn mir jemand helfen könnte.

Danke schonmal.

Gruß Yvonne
ptk
 2006-03-13 22:12
#63781 #63781
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn die Methode in diesem Package nicht definiert ist, dann vielleicht in einem Package, aus dem geerbt wird? Man kann aber auch Methoden dynamisch erzeugen, also muss nicht alles zwingend als sub vorhanden sein. Zum Ausgeben von $self: wenn du wirklich ins Objekt reingucken möchtest, dann kannst du Data::Dumper benutzen.
murphy
 2006-03-13 23:27
#63782 #63782
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
[quote=Guest,13.03.2006, 19:57][...] nun lass ich mir $self ausgeben und bekomme folgende Ausgabe: Test::Test2::packageName=HASH(0x1decc64). Und damit kann ich nichts anfangen, bzw. mit = HASH(). [...][/quote]
Nur zur Sicherheit noch eine Erklärung: Diese Ausgabe bedeutet, dass $self eine Hashreferenz enthält (der Hash liegt intern an der Speicherstelle 0x1decc64), welche mittels bless zu einem Objekt der Klasse Test::Test2::packageName verwandelt wurde.
When C++ is your hammer, every problem looks like your thumb.
Yvonne
 2006-03-14 10:36
#63783 #63783
User since
2006-03-14
8 Artikel
BenutzerIn
[default_avatar]
Danke erstmal für Eure Hilfe.

Ich habe nun versucht mit Dumper mit die Variable ausgeben zu lassen. Bloss streikt da alles bei mir. Es dauert ewige Zeiten bis die Seite (Homepage) geladen ist und die Datei in die ich die Ausgabe umleite kann ich mit nedit nicht öffnen, da sie vermutlich so gross ist. warum wird sie so gross, das können doch nicht so viel daten sein? und gibt es eventuell noch eine andere möglichkeit sich die variable ausgeben zu lassen?
Yvonne
 2006-03-14 10:45
#63784 #63784
User since
2006-03-14
8 Artikel
BenutzerIn
[default_avatar]
hat sich erledigt. hab nicht richtig drüber nachgedacht. ich öffne einfach nicht die ganze datei, sondern lass mir nur den kopf anzeigen, so kann ich nachvollziehen, was in der variablen steht.
<< >> 5 Einträge, 1 Seite



View all threads created 2006-03-13 21:57.