my @headers = qw(AA BB CC DD); my $format = "%-15s %-15s %-15s %-15s\n"; print sprintf($format,@headers); for my $sresult(@result){ my @texte; for my $head(@headers){ my ($line) = grep{$_ =~ /^$head/}@$sresult; $line = " " unless $line; my $text = (split /\s+/,$line)[1]; $text ||= " "; push @texte,$text; } print sprintf($format,@texte); }