#!/usr/bin/perl use strict; use warnings; my %base = (); # Ausgangsbasis while(){ my $ar = [split]; $base{$ar->[0]}{$ar->[1]} = $ar->[2] || ''; } print "\t", join("\t", qw(A B C D E)), "\n"; foreach my $k1 (qw(A B C D E)){ print "$k1"; foreach my $k2 (qw(A B C D E)){ my $val = $base{$k1}{$k2} || ''; print "\t$val"; } print "\n"; } __END__ A A B A 1 C A 3 C B 2 D A 2 D B 4 D C 3 E A 2 E B 2 E C 1 E D 3