Thread Array of Hashes aus Datei anlegen (53 answers)
Opened by Flips87 at 2020-02-04 11:19

hlubenow
 2020-02-04 19:44
#191285 #191285
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
2020-02-04T10:19:41 Flips87
ich habe folgende Aufgabenstellung

Obwohl solche Arrays of Hashes in Perl nur schwer zu beherrschen sind, wenn sie komplexer werden, und ich dann lieber Objekte einsetzen würde, finde ich trotzdem, daß das eine ganz nette Aufgabe ist.
Wenn auch irgendwie sehr Perl-typisch und alt: "Wow, Arrays of Hashes, jetzt neu in Perl5!".
In Python sind die irgendwie ganz selbstverständlich. Und auch viel leichter zu handhaben.
Aber so war das damals (als Perl5 eingeführt wurde).
Flips87
Dazu der momentane Stand meines Skripts:
Code (perl): (dl )
1
2
3
4
...
print Dumper \@zeilen;
...
print Dumper \%hash;

Na ja, soweit schon ganz gut. Jetzt fehlt nur noch genau der Teil, um den es der Aufgabe gerade geht. ;)
Und überleg' doch schonmal, was Du genau ausgeben sollst. Wie sieht die "Dumper"-Zeile dafür aus?

Edit: Ich hab' gerade schon eine Lösung geschrieben, aber wenn ich sie poste, hast Du ja nichts davon. Nur soviel: Man muß die Datei nicht zweimal einlesen.
Mach eine Schleife für jede Zeile, zerteile darin die Zeile mit "split()", erzeuge für jede Zeile einen "%hash", tue das darein, was Du sollst, und füge dann dem Array jeweils die Referenz "\%hash" hinzu.

Das Blöde ist, daß in Perl das Array nicht einfach die Hashes selbst halten kann, sondern nur Referenzen auf Hashes.
Python dagegen kann in Arrays ("Listen") die Hashes (dort: "Dictionaries") selbst halten, so daß man keine Referenzen braucht ... und auch später nichts dereferenzieren muß oder so (in der Aufgabe macht "Data::Dumper" das Dereferenzieren für Dich).
Last edited: 2020-02-04 20:03:29 +0100 (CET)

View full thread Array of Hashes aus Datei anlegen