Thread Daten in Array mit Spalten schreiben (9 answers)
Opened by ElPresidente at 2012-06-05 18:59

rosti
 2012-06-05 19:17
#158768 #158768
User since
2011-03-19
3206 Artikel
BenutzerIn
[Homepage]
user image
Idee: Array ja. Spaltenweise nein. Was es sein könnte ist ein sog. Slice, der sieht so aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Dumper Slice
$VAR1 = [
{
'Length' => '1.78',
'Age' => '55',
'Name' => 'Rolf',
'Weigth' => '90'
},
{
'Length' => '1.82',
'Age' => '53',
'Name' => 'Otto',
'Weigth' => '82'
}
];


---> Ein Slice lässt sich besser verarbeiten, als ein gewöhnliches Array, o.g. Slice ist ein Array mit Hash-Referenzen, d.h., innerhalb eines jeden Array-Elements sind die Felder namentlich ansprechbar. Das gilt natürlich in erster Linie für das Sortieren. Freilich kannst Du auch einen Array-Index dazu nehmen, aber der ist nur eine Nummer und wenn Du den Code später wieder mal aufnehmen musst, gehts Grübeln los "welches Feld steht in welchem Index...".

--Rosti

http://rolfrost.de/map/perlbase/csv_names.html

Edit/PS:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
my $slice = [
          {
            'Length' => '1.78',
            'Age' => '55',
            'Name' => 'Rolf',
            'Weigth' => '90'
          },
          {
            'Length' => '1.82',
            'Age' => '53',
            'Name' => 'Otto',
            'Weigth' => '82'
          }
];


# Sortierte Ausgabe nach Name:
foreach my $r( sort{  $a->{Name} cmp $b->{Name}   }@$slice){
        printf("Name => %s, Alter => %u\n", $r->{Name}, $r->{Age});
}
#Name => Otto, Alter => 53
#Name => Rolf, Alter => 55

Last edited: 2012-06-05 19:26:55 +0200 (CEST)

View full thread Daten in Array mit Spalten schreiben