Thread Daten "Hashen"? (14 answers)
Opened by gmafx at 2010-11-25 22:39

MatthiasW
 2010-11-26 06:48
#143053 #143053
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Du kannst zwar keine Hashes sortieren, aber dafür ihre Schlüssel:
Code (perl): (dl )
my @sorted_keys = sort {was_auch_immer} keys %elements;

D.h. auch mit deinem jetzigen Code kannst du das gut machen, da schließlich alle Hashes gleiche Schlüssel verwenden.

Trotzdem würde ich eher einen einzelnen Hash verwenden, denn dann kann auch ruhig mal eine Spalte hinzukommen, ohne dass der Code verändert werden muss. Außerdem lässt sich die Struktur einfacher weiterreichen.
Du könntest das Ganze natürlich auch umdrehen und anstelle eines HoAoA einen AoHoA verwenden:
Code (perl): (dl )
1
2
3
4
5
6
# an topegs Code angelehnt:
my @columns;
#...
while (my $line = <$fh>) {
    #...
    push @{ $columns[$_]->{$id} }, $words[$_] for 0 .. $#words;

Das sieht deiner ursprünglichen Variante mit mehreren Hashes ähnlicher, finde ich. Das Sortieren funktioniert ähnlich wie bei einem einzigen Hash. Welche der beiden Strukturen mehr Speicherplatz bedarf, weiß ich allerdings gerade nicht.

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'

View full thread Daten "Hashen"?