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

rosti
 2020-02-04 18:19
#191284 #191284
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
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)

View full thread Array of Hashes aus Datei anlegen