Thread Hashes of Arrays (8 answers)
Opened by flango at 2006-07-08 17:19

Thorium
 2006-07-08 17:27
#8271 #8271
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du scheinst da ein ziemliches Durcheinander zu haben...
Willst du Daten in diesem Format speichern?
Code: (dl )
1
2
3
standort_1 => 'something',
standort_2 => 'something else',
standort_3 => 'anything'

Wenn das der Fall ist, brauchst du kein Hash im Array; dann reicht ein einfaches Hash:
Code: (dl )
1
2
3
4
5
my %standorte = (
standort_1 => 'something',
standort_2 => 'something else',
standort_3 => 'anything'
);

Ein array von hashes macht nur Sinn, wenn du Mehrere Informationen in einer Geordneten Liste haben willst:

Code: (dl )
1
2
3
4
my @standorte;
push @standorte, { name => 'Irgendwo', stadt => 'berlin', strasse => 'lang\'strasse' };
push @standorte, { name => 'Irgendwo2', stadt => 'frankfurt', strasse => 'lang\'strasse' };
push @standorte, { name => 'Foobar', stadt => 'kassel', strasse => 'lang\'strasse' };


Aber zu deiner Frage:
Code: (dl )
local $hash_values = values %$hash;

(values %$hash) gibt eine Liste zurück. Eine Liste gibt im Skalaren Kontext die Anzahl elemente zurück - und das ist in deinem Fall immer eins.
Wenn du aber auf das Element "standort_1" in einem reinen Hash zugreiffen willst:

Code: (dl )
my $standort1 = $standort{standort_1}

Wie du siehst, ist das Zugreiffen auf Daten wesentlich einfacher, wenn du die Daten dementsprechend speicherst.\n\n

<!--EDIT|Thorium|1152365280-->
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.

View full thread Hashes of Arrays