Struppi: Schüssel von Hashes in einem Array Ansprechen

Beitrag lesen

Erstmal vorne weg, bitte gib keine falsche email Addresse an, es besteht keine Pflicht etwas dort einzutragen.

ich möchte eine Personenliste erstellen. Dabei definierte ich folgenden Hash und Array

my %Person = ();
my @Liste = ();

nun weise ich folgende Werte zu:

$Person{'Vorname'} = "Frank";
$Person{'Zuname'} = "Maier";
$Liste[0] = %Person;

Damit wet du einem Skalar eine Liste zu, das bedeutet das Perl das umwandelt in die Anzahl der Elemente. Du hast in $Liste[0] also 2 stehen. hmm, mal nachgeprüft, du hast hier 2/8 stehen, warum weiß ich grad nicht.

$Person{'Vorname'} = "Hans";
$Person{'Zuname'} = "Geier";
$Liste[1] = %Person;

Hier genau so.

angegeben, womit der Perl-Interpreter nicht klarkommt. Wie muss ich z.B. den Schlüssel 'Vorname' in dem Hash, der sich im ersten Element [0] im Array @Liste befindet, korrekt ansprechen?

ich glaub du willst was ganz anderes, du willst eine List mit Hashelementen, dass sieht so aus:

my @liste = (

es hat sich eingebürgert, dass Variabeln mit einem Kleinbuchstaben anfangen

{ Vorname => 'Hans', Zuname => 'Geier' },
{ Vorname => 'Frank', Zuname => 'Maier' }
)

Dann kannst du auf die einzelenen Elemente zugreifen:

$liste[$index]->{Vorname}
$liste[$index]->{Zuname}

oder wie LeeLoo probiert hat, mit push:

my @liste;

push @liste, { Vorname => 'Hans', Zuname => 'Geier' };
push @liste, { Vorname => 'Frank', Zuname => 'Maier' };

In der Perl Doku findest du noch viel mehr darüber.

Struppi.

--
Javascript ist toll (Perl auch!)