Thread dynamisch mehrdimensionales Array (19 answers)
Opened by sebi85 at 2010-10-27 10:09

topeg
 2010-10-27 13:02
#142233 #142233
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Perl hat ein paar ganz interessante Fähigkeiten. Was dir hier interessieren könnte ist die Autovivikation.

An einem Beispiel:
Code (perl): (dl )
1
2
3
4
5
my @array;

$array[1]->[0]->{foo}="bar";

print $array[1]->[0]->{foo}


die nötigen anonymen Arrays und Hashes um den Wert setzen zu können werden automatisch erzeugt wenn sie nicht existieren.

Auf dein Problem lässt sich das auch anwenden:

Code (perl): (dl )
1
2
3
4
5
6
my %params;
for(@Zeilen)
{
  my($pre,$param,$value)=split_line($_);
  push(@{$params{$pre}->{$param}},$value);
}

dabei käme etwas in der Art heraus:

Code: (dl )
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
{
C => {
param1 => [
"value1",
"value2",
"value3",
],
param2 => [
"value1",
"value2",
],
param3 => [
"value1",
],
},
A => {
param1 => [
"value1",
],
param2 => [
"value1",
"value2",
],
},
B => {
param1 => [
"value1",
],
param2 => [
"value1",
"value2",
],
param3 => [
"value1",
"value2",
"value3",
],
},
};

Last edited: 2010-10-27 13:04:56 +0200 (CEST)

View full thread dynamisch mehrdimensionales Array