Leser: 1
![]() |
|< 1 2 >| | ![]() |
17 Einträge, 2 Seiten |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; $Data::Dumper::Sortkeys = 1; my @Array1 = ( 'Nr;Name;Vorname;Strasse;Ort', '1;Bauer;Otto;Heuweg 1;Bonn', '2;Mueller;Mark;Holzweg 2;Berlin', '3;Schreiber;Stefan;Hochweg 3;Muenchen', ); print "Array = ", Dumper \@Array1; my @Array2; # hier kommt spter alles rein # Ueberschrift entfernen und speichern: my @Title = split /;/, shift @Array1; my $N = @Title; print "Title = ", Dumper \@Title; print "Array = ", Dumper \@Array1; for (@Array1) { # am semikolon auftrennen my @line = split /;/; die "Falsche Anzahl Elemente" unless $N == @line; # als anonymen Hash zuweisen my %hash; for my $i (0 .. $N-1) { $hash{$Title[$i]} = $line[$i]; # wir hoffen, dass alle Spalten unterschiedliche Titel haben... } push @Array2, { %hash }; } print "Array2 = ", Dumper \@Array2; # auf einzelne Werte zugreifen print $Array2[1]->{'Vorname'} . ' ' . $Array2[1]->{'Name'} . " \n"; print $Array2[2]->{$Title[2]} . ' ' . $Array2[2]->{$Title[1]} . " \n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Array = $VAR1 = [
'Nr;Name;Vorname;Strasse;Ort',
'1;Bauer;Otto;Heuweg 1;Bonn',
'2;Mueller;Mark;Holzweg 2;Berlin',
'3;Schreiber;Stefan;Hochweg 3;Muenchen'
];
Title = $VAR1 = [
'Nr',
'Name',
'Vorname',
'Strasse',
'Ort'
];
Array = $VAR1 = [
'1;Bauer;Otto;Heuweg 1;Bonn',
'2;Mueller;Mark;Holzweg 2;Berlin',
'3;Schreiber;Stefan;Hochweg 3;Muenchen'
];
Array2 = $VAR1 = [
{
'Name' => 'Bauer',
'Nr' => '1',
'Ort' => 'Bonn',
'Strasse' => 'Heuweg 1',
'Vorname' => 'Otto'
},
{
'Name' => 'Mueller',
'Nr' => '2',
'Ort' => 'Berlin',
'Strasse' => 'Holzweg 2',
'Vorname' => 'Mark'
},
{
'Name' => 'Schreiber',
'Nr' => '3',
'Ort' => 'Muenchen',
'Strasse' => 'Hochweg 3',
'Vorname' => 'Stefan'
}
];
Mark Mueller
Stefan Schreiber
@array1 = map { s/dein lustiger regexp/$1$2/; $_ } @array2
@array1 = map { s/dein lustiger regexp/$1$2/; $_ } @array2
print Data::Dumper->Dump([\@Array1],[qw(Array)]);
\n
![]() |
|< 1 2 >| | ![]() |
17 Einträge, 2 Seiten |