Beat: Object Getter/Setter und undef

Beitrag lesen

Moin Moin!

Zugabe:
Wie käme ich da an die Syntax
   $ob->remove->hashkey
?

Was sieht Perl dort ohne Source-Filter?

Auf jeden Fall sucht Perl nach einer Methode remove im Package des Objects.
Wenn diese nicht etwas zurückliefert, das dann sinnvoll aufgelöst werden kann
_returnvalue_->hashkey
also selbst ein Objekt liefert, ist hier ende.

Rufe die Methode "remove" des Objektes "$ob" auf.

Rufe die Methode "hashkey" des von "remove" gelieferten Objekts bzw. der gelieferten Klasse auf.

Die "remove"-Methode könnte eine Instanz einer fast komplett leeren Klasse liefern, die in einer AUTOLOAD-Methode den Namen der aufgerufenen Methode benutzt, um aus $ob einen Hash-Key zu löschen. Dazu muß die Instanz entweder $ob enthalten oder eine Callback-Methode / Callback-Funktion in $ob aufrufen.

...
...

und wäre das sinnvoll?

Jedenfalls extrem ungewohnt und sehr umständlich.

Ich würde sagen, es ist teuer. Ich erzeuge ein Objekt nur um eine Eigenschaft zu zerstören.

Was passiert, wenn Du zwar remove aufrufst, aber den Methodenaufruf bei der zurückgelieferten Hilfsklassen-Instanz vergißt?

du meinst:
$ob->remove->someprop ?
oder
$ob->remove
Dann bekomme ich das erzeugte Objekt der KillerClasse ohne dass ich etwas sinnvolles bewirke.

Mir scheint ein:
$ob->remove('key1',key2')
ist da doch effizienter.

Danke

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische