Thread Array of Arrays (Matrix vs. Tabelle) (4 answers)
Opened by kimmy at 2011-12-22 15:56

kimmy
 2011-12-22 15:56
#155025 #155025
User since
2010-09-10
87 Artikel
BenutzerIn
[default_avatar]
Hallo Zusammen,

ich habe folgende diagonale Matrix.
Code: (dl )
1
2
3
4
A	
B 1
C 3 2
D 2 4 3

Und damit habe ich 2-dimensionale Array erstellt.
Code (perl): (dl )
1
2
3
4
5
6
7
8
my (@data_array, @begriff_array, %begriff_hash);
while(<>){
    chomp;
        my $begriff = $1, my $matrix = $2 if (/^([^\t]+)\t(.*)/);
        push @begriff_array, $begriff;
        # Push Array of Array
        push @data_array, [split(/\t/,$matrix)];
}

Aber ich möchte als Input statt Matrix eine Tabelle verwenden;
Code: (dl )
1
2
3
4
5
6
7
A	A	
B A 1
C A 3
C B 2
D A 2
D B 4
D C 3


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my (%hash, %hoa);
my (@data_array,@begriff_array);
while(<>){
        chomp;
        my $bez1=$1, my $bez2=$2, my $dis=$3 if(/^(.+)\t(.*)\t(.*)$/);
        push @{$hash{$bez1}}, $dis;     
        next if defined $hoa{$bez1};
        push @begriff_array, $bez1;
        $hoa{$bez1}=1;
}

foreach my $key (sort keys %hoa){
        push @data_array, [@{$hash{$key}}];
}

Wieso sind die Arrays "@data_array" nicht identisch? Was habe ich beim 2. Skript falsch gemacht?

View full thread Array of Arrays (Matrix vs. Tabelle)