#! /usr/bin/perl use strict; use warnings; use Data::Dumper; # datei oeffnen, etc. my @array = ( 'a1 a2 a3 a4 a5 a6', 'b1 b2 b3 b4 b5 b6', 'c1 c2 c3 c4 c5 c6', 'd1 d2 d3 d4 d5 d6', 'e1 e2 e3 e4 e5 e6', 'f1 f2 f3 f4 f5 f6', ); my @spalten; for my $str ( @array ) { my @arr = split m{ }, $str; # erzeuge AoA; der aeussere Index kennzeichnet die Spalte, # der innere Array hat die Elemente der Spalte for my $i ( 0 .. $#arr ) { push @{$spalten[$i]}, $arr[$i]; } # Kontrollausgabe warn Dumper( \@spalten ), $/; } # "datei" auslesen while ( my $line = ) { chomp $line; # umbruch entfernen # Sollte 3 Felder (z.B. A,A1,A2) ergeben my @fields = split m{ }, $line; # fuer jede Spaltensammlung for my $aRef ( @spalten ) { # dereferenziere die Spaltensammlung und arbeite mit Kopie my @result = @$aRef; # fuege die eben ermittelten 3 Felder in die Kopie splice(@result,3,0,@fields); # gebe Ergebnis aus print join( ', ', @result), "\n"; } } __DATA__ A1 A2 A3 B1 B2 B3 C1 C2 C3