|< 1 2 >| | 12 Einträge, 2 Seiten |
my %data = ('gruppe1' => [qw/pc1 pc2 pc3/], 'gruppe2' => [qw/pc2 pc4 pc5/], 'gruppe3' => [qw/pc1 pc6/]);
1
2
3
4
my %data2;
while (my ($gruppe, $pcs) = each %data) {
push @{$data2{$_}}, $gruppe for @$pcs;
}
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
use Data::Dumper;
print Dumper \%data2;
# Ausgabe:
$VAR1 = {
'pc3' => [
'gruppe1'
],
'pc5' => [
'gruppe2'
],
'pc4' => [
'gruppe2'
],
'pc6' => [
'gruppe3'
],
'pc1' => [
'gruppe3',
'gruppe1'
],
'pc2' => [
'gruppe1',
'gruppe2'
]
};
1
2
3
4
my %data2;
while (my ($gruppe, $pcs) = each %data) {
push @{$data2{$_}}, $gruppe for @$pcs;
}
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];
1
2
3
4
5
6
my %data2;
while (my ($gruppe, $pcs) = each %daten) {
push @{$data2{$_}}, $gruppe for @$pcs;
}
print Dumper \%data2;
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'
]
};
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
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %lut;
my $cur;
my %rev_lut;
while(<DATA>) {
chomp;
$cur = $1 if /(Gruppe\d+)/;
push @{$lut{$cur}}, $_ unless (/Gruppe/ or /^\s*$/);
}
print Dumper \%lut;
while (my ($k, $v) = each %lut) {
push @{$rev_lut{$_}}, $k for @$v;
}
print Dumper \%rev_lut;
_ _DATA_ _
Gruppe1
PC1
PC2
PC3
Gruppe2
PC2
PC4
PC5
Gruppe3
PC1
PC6
|< 1 2 >| | 12 Einträge, 2 Seiten |