use 5.020; use warnings; open FILE,'<',"Eingabe.csv" or die "Can't open data $!\n"; my @lines = (); while (my $zeile = ) { push @lines, $zeile; } close (FILE); my @areas = qw(area1 area2 area3); my $ausgabe = 'Ausgabe.csv'; #my @lines = split /\n/,$device_csv; my @headers = split /\s*;\s*/, shift @lines; # Erste Zeile brauchen wir nicht my @data = map [ split /\s*;\s*/ ], @lines; # Array of Arrays! open (my $ehe,'>',$ausgabe) or die "Fehler beim Oeffnen der Datei '$ausgabe': '$!'\n"; say $ehe "Ip;destination;vrf;kuerzel;umgebung"; for my $area (@areas) { # fuer alle drei Areas my @brides = @data; # und alle Adressen my @grooms = @data; # zu allen Partnern for my $bride (@brides) { shift @grooms; # nur "vorwärts" verknüpfen MARRIAGE: for my $groom (@grooms) { my $ip = $bride->[1]; my $destination = $groom->[1]; my $kuerzel = $groom->[2]; my $vrf = $area; # ?? soll's das sein? my $umgebung = $groom->[4]; # ?? Das fehlt im Beispiel? say $ehe "$ip;$destination;$vrf;$kuerzel;$umgebung"; } } } close $ehe; say "Geschafft.";