Calocybe: Dereferenzierung von Pointern auf Hashes

Beitrag lesen

Hallo Michael!

Also habe ich versucht, einen Pointer auf einen solchen Hash an die entsprechenden Funktionen zu übergeben - VAR-Parameter wie in PASCAL gibt es in Perl ja leider nicht.

Naja, die Pascalschen VAR-Parameter sind ja nichts anderes als versteckte Pointer, nur dass es in der Syntax der Sprache gekapselt wird. Deshalb habe ich kein Problem damit, wenn eine Sprache kein call-by-reference eingebaut hat, solange sie nur Pointer unterstuetzt (sind eh' viel flexibler).

Leider aber funktioniert die folgende Konstruktion nicht:
   foreach my $key (keys $$hash_ptr) { ... }

Stimmt, Du willst hier eine Hash-Referenz zu einem Skalar dereferenzieren - ein astreiner Typennkonflikt, den sogar Perl mitbekommt. Du musst sie zu einem Hash dereferenzieren:
      foreach my $key (keys %$hash_ptr) { ... }

Hoffe ich hab jetzt nichts falsches gesagt *g*
So long