Thread Array of Hashes aus Datei anlegen
(53 answers)
Opened by Flips87 at 2020-02-04 11:19
Ein Beispiel wie man eine CSV Datei zu einem Array mit Hashreferenzen machen kann:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 my @names = (); my @fields = split /\s+/, <DATA>; # Ziehe die Feldnamen foreach ( <DATA>){ chomp; my %hunt = (); @hunt{@fields} = split; # Hash Slice push @names, \%hunt; } print Dumper \@names; __DATA__ Name Vorname Ort Nonsens Oliver Irgendwo Hansel Ulrich Adorf Pfotenhauer Fritz BB Dumper zeigt: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $VAR1 = [ { 'Name' => 'Nonsens', 'Ort' => 'Irgendwo', 'Vorname' => 'Oliver' }, { 'Name' => 'Hansel', 'Ort' => 'Adorf', 'Vorname' => 'Ulrich' }, { 'Name' => 'Pfotenhauer', 'Ort' => 'BB', 'Vorname' => 'Fritz' } ]; Das Besondere an dieser Lösung ist der Hash-Slice und das gibt tatsächlich nur in Perl! Kurz erklärt, mit dem Hash-Slice werden die Schlüssel (@fields) mit den Werten verbunden. In der Datei selbst stehen die Feldnamen in der ersten Zeile. . Last edited: 2020-02-04 18:25:22 +0100 (CET) |