Jetzt bin ich auf das nächste Problem gestossen...
Wenn ich dem Hash %daten den Inhalt "manuell" zuweise funktioniert das ganze.
Wenn ich jedoch die Daten aus einer Datei auslese funktioniert es nicht...
Die Datei sieht so aus:
Gruppe1
PC1
PC2
PC3
Gruppe2
PC2
PC4
PC5
Gruppe3
PC1
PC6
Der Code um die Datei auszulesen und die Daten in den Hash zu schreiben:
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
use Data::Dumper;
use strict;
my @computer = "";
my $gruppen;
my %daten;
my $key;
my $i = 0;
open (INFILE, 'list.txt') or die "Could not open infile !!!";
while(<INFILE>){
chomp $_;
if($_ =~ /Gruppe/){
if($i == 0){
$gruppen = $_;
}
else{
$daten{$gruppen} = [@computer];
@computer = "";
$gruppen = $_;
}
}
else{
push @computer, $_;
}
$i++;
}
$daten{$gruppen} = [@computer];
...und wenn ich hiermit die Daten umordne...
my %data2;
while (my ($gruppe, $pcs) = each %daten) {
push @{$data2{$_}}, $gruppe for @$pcs;
}
print Dumper \%data2;
erhalte ich diese Ausgabe:
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
$VAR1 = {
'PC1' => [
'Gruppe3',
'Gruppe1'
],
'' => [
'Gruppe3',
'Gruppe1',
'Gruppe1',
'Gruppe2',
'Gruppe2'
],
'PC3' => [
'Gruppe1'
],
'PC4' => [
'Gruppe2'
],
'PC2' => [
'Gruppe1',
'Gruppe2'
],
'PC6' => [
'Gruppe3'
],
'PC5' => [
'Gruppe2'
]
};
Es scheint ein kleiner Fehler beim Auslesen zu passieren, da ich einen Array zuviel habe, aber ich finde den Fehler nicht....
Thx schonmal für eure Hilfe
Grüsse,
Jamthelaw\n\n
<!--EDIT|Jamthelaw|1130199764-->