hotti: Object Getter/Setter und undef

Beitrag lesen

hi Beat,

Irgendwo im Hinterstüchen war, dass ich @_ abfragen kann.

Der arrow-OP hat im Fall der Methodenaufrufe eine andere Bedeutung:

$obj->method;

bewirkt, dass in der Methode "method" das erste Element in @_ bzw. $_[0] das Objekt selbst ist. Perler benennen das i.d.R. $self, geläufig ist aber auch $this.

Im Konstruktor ist das erste Argument die Klasse, die aufgerufen wurde:
$obj = Class->new;

sub new{
  my $class = $_[0]; # oder shift
  my $this = [];     # hier isses mal eine Array-Ref
  return bless $this, $class;
}

In Objekt-Strukturen ermöglicht der arrow-OP den Zugriff auf die Werte, ist klar:
my $val = $ob->{erster}->{name};

Ich verfolge nur nicht konsequent jeden Gedankenstrang.

Alles wird Dir sehr schnell in Fleisch und Blut übergehen. Hashes als Objekte ermöglichen infolge einfacher Zuweisungen z.b. den Einbau von Objekten in ganze Sammlungen von Objekten. Eigenschaften sind namentlich ansprechbar. Eine Anweisung

$objects->{1} = $obj->{1};

Hängt $obj an der richtigen Stelle {1} in den Strukturbaum ein. Oder mal so:

$Artikel->{'handy'}->{'preis'} = $rest->{1}->{preis}; # rest-Schnittstelle, neuer Preis

Dahinter können sich die verwegensten Datenstrukturen verbergen, Anwendungen z.b. auch CMS, Einbau neuer Ressourcen+Attribute.

Objekte müssen nicht unbedingt Hashrefs sein. In "sortierten Daten" kannst Du selbstverständlich auch eine Array-Ref verwenden, darin wieder {}-Zeugs usw. Deiner Kreativität sind keine Grenzen gesetzt.

Hotti