my @files = @ARGV; my %table; while (<>) { my ($name, $value) = split(' ', $_); $table{$name}->{$ARGV} = $value; } print join("\t", "NAME", @files), "\n"; for my $n (keys %table) { print $n; for my $f (@files) { print "\t", $table{$name}->{$f}; } print "\n"; }