Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Perl] Referenzen

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

zuerst: ich bin ein Perl Newbie und bin in einen Code reingeschmissen worden, der OOP ist. Und nun verzweifel ich grad an folgenden Dingen.

Folgendes:

Ich habe zwei Klassen: eine Klasse Box und eine Klasse Layer

von der Klasse Layer habe ich ein Objekt erzeugt:

$test = new Klasse::Layer('Hallo',1,1);

von der Klasse Box habe ich ebenfalls ein Objekt erzeugt:

$BoxObject = new Klasse::Box(new Klasse::Position, new Klasse::Groesse);

Beides Funktioniert ohne Probleme.

Nun möchte ich aus dem $BoxObject die Methode GetLayerName() aufrufen.

In dem Package, wo die Klasse ist, ist diese Methode wiefolge deklariert:

sub GetLayerName {....}

Diese Methode gibt einen Pointer auf ein Object der Klasse Layer zurück (hab ich aus der Doku hier).

Nun mach ich folgendes. Wenn diese Funktion ja einen Pointer auf ein LayerObjekt erwartet, dann schreibe ich auch in eins:

$test = $BoxObject->GetLayerName;

Mit dem $test Layer Object möchte ich nun was anstellen, nämlich den Namen setzen:

$test->setzeName('Hallihallo');

Deklariert ist die Methode wiefolgt:

*setzeName= *PackageXY::SetLayerName;

(es verweist auf eine Externe C-Source)...

Führe ich mein Skript nun aus bekomme ich folgende Fehlemeldung:

Can't call method "setzeName" on unblessed referecne at Name der Anwendung

Ich glaube, das liegt an diesem besonderen Aufruf von "setzeName".

Kann mir da wer helfen? Ich blick da nicht durch und ich weiß auch nicht, nach welchem Schlagwort ich googeln soll...

Gruß

Ganymed

Hallo Gany,

kannst du mal deinen Code posten? Nur mit den Codeausschnitten kann ich nichts anfangen .... mit dem gesamten (zumindest diesen Teilausschnitt) Code könnte ich mich da mal etwas einarbeiten.

bzw. gib doch mal deine Fehlermeldung bei google ein .... vielleicht hast du da nen Treffer

  • Autor
Hallo Gany,

kannst du mal deinen Code posten? Nur mit den Codeausschnitten kann ich nichts anfangen .... mit dem gesamten (zumindest diesen Teilausschnitt) Code könnte ich mich da mal etwas einarbeiten.

Das ist das Problem: Das ist über 3 Dateien verteilt und das sind die entscheidenen Zeilen.

Das mit der Meldung versuch ich mal - so einfach... Mal sehen, was draus wird

A method call must know in what package it's supposed to run. It ordinarily finds this out from the object reference you supply, but you didn't supply an object reference in this case. A reference isn't an object reference until it has been blessed!!!!!

bRuTeForCe

alias brainslave

  • Autor
A method call must know in what package it's supposed to run. It ordinarily finds this out from the object reference you supply, but you didn't supply an object reference in this case. A reference isn't an object reference until it has been blessed!!!!!

Und was heißt das jetzt?

Das Object hat ein bless() im Kontruktor...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.